回答編集履歴
4
文章の修正
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を呼びたい」
|
15
|
+
そもそも、「Test2のFunc1を呼びたい」は重要でしょうか。それよりも重要なのはこのプログラムで必要であろうFunc1中の処理 print("test"); を呼び出すことではないのでしょうか。
|
16
16
|
|
17
|
-
であれば、まず命名的に
|
17
|
+
であれば、まずFunc1は命名的に正しくありません。Func1という名前からprint("test"); が呼び出されることをイメージできないからです。
|
18
18
|
|
19
|
-
正しくない名前が存在するぐらいであれば消すか
|
19
|
+
正しくない名前が存在するぐらいであれば消すか正しい名前に改名しましょう。
|
20
20
|
Test2も先ほどの依存関係の理由によって消しましょう。
|
21
21
|
|
22
22
|
```C#
|
3
追記
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
追記
answer
CHANGED
@@ -4,8 +4,10 @@
|
|
4
4
|
Test1とTest2を分ける必要性はあるのでしょうか。
|
5
5
|
|
6
6
|
上記を解決するにはTest1がTest2のインスタンスを持つようにすれば良いと思います。
|
7
|
-
しかし、元々「Test2はTest1に依存している」という関係性です。そこに「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
文章の修正
answer
CHANGED
@@ -8,10 +8,15 @@
|
|
8
8
|
|
9
9
|
> どのように実装するのが正しいのでしょうか。
|
10
10
|
|
11
|
-
gentaroさんが書かれているように、あなたの「正しい」が何なのか我々に分からないと、答えられません。
|
11
|
+
大前提ですが、gentaroさんが書かれているように、あなたの「正しい」が何なのか我々に分からないと、答えられません。
|
12
12
|
|
13
|
-
も
|
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
|
-
|
30
|
+
PrintTest();
|
26
31
|
}
|
27
32
|
}
|
28
33
|
|
29
|
-
void
|
34
|
+
void PrintTest() {
|
30
35
|
print("test");
|
31
36
|
}
|
32
37
|
}
|