回答編集履歴
5
誤字の修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
Dependency Injectionとは、依存性を外から注入する…という意味です。masuoさんの例の場合は、「値を共有するためのオブジェクトを渡してあげる」ということです。この利点は、DのスコープによってABCクラスで共有する値のスコープも変えることができることです。
|
5
5
|
例えば、常に値が共有され続けるならばクラスDはシングルトンにすればいいでしょう。とあるシーン(画面中)でのみ同じという場合にはその都度生成し、ABCのインスタンス化時に同じDインスタンスを渡します。
|
6
|
-
疎結合を保て、利用すべきシナリオに合わせて共有方法が変えられるというのがDIのメリットです。デメリットとしては、Dの取得元(インスタンス化方法)を参照することでしか共有方法が分からな
|
6
|
+
疎結合を保て、利用すべきシナリオに合わせて共有方法が変えられるというのがDIのメリットです。デメリットとしては、Dの取得元(インスタンス化方法)を参照することでしか共有方法が分からないことや、コーディング量が増えてしまうというのがあり、最初の方は使いこなすまでに慣れがいると思います。
|
7
7
|
|
8
8
|
```
|
9
9
|
public class A
|
4
言い回しの修正(の→を)
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
疎結合な実装方法を探しているようですので、DI(※Dependency Injection)について説明します。
|
2
2
|
※どのタイミングで共有する値が変わるのか、によって実装は変わってきます。もしも保存時だけ…というのであれば、リポジトリに共有するための機能を追加していきます。
|
3
3
|
|
4
|
-
Dependency Injectionとは、依存性を外から注入する…という意味です。masuoさんの例の場合は、「値
|
4
|
+
Dependency Injectionとは、依存性を外から注入する…という意味です。masuoさんの例の場合は、「値を共有するためのオブジェクトを渡してあげる」ということです。この利点は、DのスコープによってABCクラスで共有する値のスコープも変えることができることです。
|
5
5
|
例えば、常に値が共有され続けるならばクラスDはシングルトンにすればいいでしょう。とあるシーン(画面中)でのみ同じという場合にはその都度生成し、ABCのインスタンス化時に同じDインスタンスを渡します。
|
6
6
|
疎結合を保て、利用すべきシナリオに合わせて共有方法が変えられるというのがDIのメリットです。デメリットとしては、Dの取得元(インスタンス化方法)を参照することでしか共有方法が分からなることや、コーディング量が増えてしまうというのがあり、最初の方は使いこなすまでに慣れがいると思います。
|
7
7
|
|
3
factoryのcreateAメソッドにstaticを追加
answer
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
return d;
|
45
45
|
}
|
46
46
|
|
47
|
-
public A createA()
|
47
|
+
public static A createA()
|
48
48
|
{
|
49
49
|
return new A(getD());
|
50
50
|
}
|
2
言い回しの訂正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
疎結合な実装方法を探しているようですので、DI(※Dependency Injection)について説明します。
|
2
2
|
※どのタイミングで共有する値が変わるのか、によって実装は変わってきます。もしも保存時だけ…というのであれば、リポジトリに共有するための機能を追加していきます。
|
3
3
|
|
4
|
-
Dependency Injectionとは、依存性を外から注入する…という意味です。masuoさんの例の場合は、「値の共有するためのオブジェクトを渡してあげる」ということです。この利点は、DのスコープによってABCクラス
|
4
|
+
Dependency Injectionとは、依存性を外から注入する…という意味です。masuoさんの例の場合は、「値の共有するためのオブジェクトを渡してあげる」ということです。この利点は、DのスコープによってABCクラスで共有する値のスコープも変えることができることです。
|
5
5
|
例えば、常に値が共有され続けるならばクラスDはシングルトンにすればいいでしょう。とあるシーン(画面中)でのみ同じという場合にはその都度生成し、ABCのインスタンス化時に同じDインスタンスを渡します。
|
6
6
|
疎結合を保て、利用すべきシナリオに合わせて共有方法が変えられるというのがDIのメリットです。デメリットとしては、Dの取得元(インスタンス化方法)を参照することでしか共有方法が分からなることや、コーディング量が増えてしまうというのがあり、最初の方は使いこなすまでに慣れがいると思います。
|
7
7
|
|
1
return が抜けていたので修正
answer
CHANGED
@@ -20,11 +20,11 @@
|
|
20
20
|
}
|
21
21
|
public getValue()
|
22
22
|
{
|
23
|
-
d.getValue();
|
23
|
+
return d.getValue();
|
24
24
|
}
|
25
25
|
}
|
26
26
|
|
27
|
-
//
|
27
|
+
// 他のBCについて同様、Dはvalueプロパティを持つだけのbeanみたいなものです(この例では)
|
28
28
|
public class B;
|
29
29
|
public class C;
|
30
30
|
|