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

回答編集履歴

2

修正

2020/12/18 01:51

投稿

退会済みユーザー
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

修正

2020/12/18 01:51

投稿

退会済みユーザー
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
+ インターフェース定義して、それに沿ったクラス作って注入とかでも実現できますが、そこまでするのも大袈裟だなーという場合、とりあえずデリゲートでみたいなのはあります。