質問するログイン新規登録

回答編集履歴

4

文章の修正

2021/03/03 02:59

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -6,17 +6,17 @@
6
6
  上記を解決するにはTest1がTest2のインスタンスを持つようにすれば良いと思います。
7
7
  しかし、元々「Test2はTest1に依存している」という関係性です。そこに「Test1はTest2に依存している」という関係性を持たせてしまうと相互に依存しあうことになり、Test1とTest2を分ける必要性がなくなります。
8
8
 
9
- それは設計的にも正しくないでしょう。
9
+ 設計的にも正しくないでしょう。
10
10
 
11
11
  > どのように実装するのが正しいのでしょうか。
12
12
 
13
13
  大前提ですが、gentaroさんが書かれているようにあなたの「正しい」が何なのか我々に分からないと答えられません。
14
14
 
15
- そもそも、「Test2のFunc1を呼びたい」という目的、一見それは目的のうに見えてそうではいように思います。このプログラムで必要なのはFunc1中の処理 print("test"); を呼び出すことではないのでしょうか。
15
+ そもそも、「Test2のFunc1を呼びたい」は重要でしょうか。それよりも重要のはこのプログラムで必要であろうFunc1中の処理 print("test"); を呼び出すことではないのでしょうか。
16
16
 
17
- であれば、まず命名的にFunc1は正しくありません。Func1という名前からprint("test"); が呼び出されることをイメージできないからです。
17
+ であれば、まずFunc1は命名的に正しくありません。Func1という名前からprint("test"); が呼び出されることをイメージできないからです。
18
18
 
19
- 正しくない名前が存在するぐらいであれば消すか正しい名前に改名しましょう。
19
+ 正しくない名前が存在するぐらいであれば消すか正しい名前に改名しましょう。
20
20
  Test2も先ほどの依存関係の理由によって消しましょう。
21
21
 
22
22
  ```C#

3

追記

2021/03/03 02:59

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  > どのように実装するのが正しいのでしょうか。
12
12
 
13
- 大前提ですが、gentaroさんが書かれているようにあなたの「正しい」が何なのか我々に分からないと答えられません。
13
+ 大前提ですが、gentaroさんが書かれているようにあなたの「正しい」が何なのか我々に分からないと答えられません。
14
14
 
15
15
  そもそも、「Test2のFunc1を呼びたい」という目的は、一見それは目的のように見えてそうではないように思います。このプログラムで必要なのはFunc1中の処理 print("test"); を呼び出すことではないのでしょうか。
16
16
 
@@ -39,4 +39,5 @@
39
39
  }
40
40
  ```
41
41
 
42
- **無駄にソースを複雑にしないこと** が実装の正しさの1つです。
42
+ **無駄にソースを複雑にしないこと** が実装の正しさの1つです。
43
+ 複雑にしないためには、依存関係をしっかり決めること・わかりやすい命名を心掛けることが大切です。

2

追記

2021/03/03 02:55

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -4,8 +4,10 @@
4
4
  Test1とTest2を分ける必要性はあるのでしょうか。
5
5
 
6
6
  上記を解決するにはTest1がTest2のインスタンスを持つようにすれば良いと思います。
7
- しかし、元々「Test2はTest1に依存している」という関係性です。そこに「Test1はTest2に依存している」という関係性を持たせてしまうと相互に依存しあうことになり、設計的に正しくありませんし、Test1とTest2を分ける必要性がなくなります。
7
+ しかし、元々「Test2はTest1に依存している」という関係性です。そこに「Test1はTest2に依存している」という関係性を持たせてしまうと相互に依存しあうことになり、Test1とTest2を分ける必要性がなくなります。
8
8
 
9
+ それは設計的にも正しくはないでしょう。
10
+
9
11
  > どのように実装するのが正しいのでしょうか。
10
12
 
11
13
  大前提ですが、gentaroさんが書かれているように、あなたの「正しい」が何なのか我々に分からないと、答えられません。
@@ -35,4 +37,6 @@
35
37
  print("test");
36
38
  }
37
39
  }
38
- ```
40
+ ```
41
+
42
+ **無駄にソースを複雑にしないこと** が実装の正しさの1つです。

1

文章の修正

2021/03/03 02:53

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -8,10 +8,15 @@
8
8
 
9
9
  > どのように実装するのが正しいのでしょうか。
10
10
 
11
- gentaroさんが書かれているように、あなたの「正しい」が何なのか我々に分からないと、答えられません。
11
+ 大前提ですが、gentaroさんが書かれているように、あなたの「正しい」が何なのか我々に分からないと、答えられません。
12
12
 
13
- し私が「Test2のFunc1を呼びたい」という目的を達成するなら、そもそもTest2とTest1を1つクラスまとめると思います。(それが「正しは分かりませんが)
13
+ そも、「Test2のFunc1を呼びたい」という目的一見れは目的よう見えてそうではないように思います。このプログラムで必要なのはFunc1中の処理 print("test"); を呼び出すことではなのでしょう
14
14
 
15
+ であれば、まず命名的にFunc1は正しくありません。Func1という名前から、print("test"); が呼び出されることをイメージできないからです。
16
+
17
+ 正しくない名前が存在するぐらいであれば消すか、正しい名前に改名しましょう。
18
+ Test2も先ほどの依存関係の理由によって消しましょう。
19
+
15
20
  ```C#
16
21
  class Test {
17
22
 
@@ -22,11 +27,11 @@
22
27
  val++;
23
28
  if(val >= valMax){
24
29
  val = 0;
25
- Func1();
30
+ PrintTest();
26
31
  }
27
32
  }
28
33
 
29
- void Func1() {
34
+ void PrintTest() {
30
35
  print("test");
31
36
  }
32
37
  }