回答編集履歴
2
修正
answer
CHANGED
@@ -8,4 +8,6 @@
|
|
8
8
|
- 実装が複数あり、切り替える事がある
|
9
9
|
Hoge(a, b)を高速化したFastHoge(a, b)、安全性の高いSecureHoge(a, b)みたいなのがあったとして、どちらを使うか不確定の場合、呼び出しをデリゲート経由にしておくと切り替えやすい。
|
10
10
|
|
11
|
-
インターフェース定義して、それに沿ったクラス作って注入とかでも実現できますが、そこまでするのも大袈裟だなーという場合、とりあえずデリゲートでみたいなのはあります。
|
11
|
+
インターフェース定義して、それに沿ったクラス作って注入とかでも実現できますが、そこまでするのも大袈裟だなーという場合、とりあえずデリゲートでみたいなのはあります。
|
12
|
+
|
13
|
+
質問の例だと、そもそもクラスの役割が明確ではないので、どちらがいいのか決めれる段階ではないと思います。その実装をする事で、何を実現させたいかが重要です。
|
1
修正
answer
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
- イベント、コールバック処理を注入する
|
4
4
|
処理を始めるタイミング、引数のお膳立てまではするけど、処理の実装は利用者側で決めてという場合。
|
5
5
|
ボタンクリックのイベントとか、 [Regex.Replace のサンプルとか](https://docs.microsoft.com/ja-jp/dotnet/api/system.text.regularexpressions.regex.replace?view=net-5.0#System_Text_RegularExpressions_Regex_Replace_System_String_System_String_System_Text_RegularExpressions_MatchEvaluator_)
|
6
|
-
継承
|
6
|
+
継承でも実装できなくはないけど、デリゲートだと全然関係ないクラスからでも注入できる。
|
7
7
|
|
8
8
|
- 実装が複数あり、切り替える事がある
|
9
9
|
Hoge(a, b)を高速化したFastHoge(a, b)、安全性の高いSecureHoge(a, b)みたいなのがあったとして、どちらを使うか不確定の場合、呼び出しをデリゲート経由にしておくと切り替えやすい。
|
10
10
|
|
11
|
-
インターフェース定義して、それに沿ったクラス作ってとかでも実現できますが、そこまでするのも大袈裟だなーという場合、とりあえずデリゲートでみたいなのはあります。
|
11
|
+
インターフェース定義して、それに沿ったクラス作って注入とかでも実現できますが、そこまでするのも大袈裟だなーという場合、とりあえずデリゲートでみたいなのはあります。
|