アダプティブコードとデリゲート
この本を読みながら考えを整理する。
第5章「単一責務の原則から」
定義済みデリゲートよりもインターフェースで責務を表現しましょうよ。という話だろうか。
定義済みデリゲートというとActionやFunc、PredicateやComparison
書籍では「インターフェースほど融通が利かないよ。」という旨の記述がある。
なんとなく分かる気がするけど具体的には?って言われるとわからないような。
考えてみる↓
1.そもそもデリゲートで記述すると実装依存
ListクラスのSortメソッドやFindAllメソッドなんかはちょっとした処理ならfor eachを書かなくても匿名メソッドなんかでがりがり書けるけど、そこでしか使えない処理。
じゃあすべてインタフェースを用意して、コンストラクタで渡して・・・なんてやってたら日が暮れるどころか納期すぎてまう。
使い分けの問題なのだろうけど・・・。
インターフェースなのでラップしたりコンポジットしたり、拡張性に制限がないのは優位かな。
2.デリゲートとクラスと使い分けがめんどくさい。
オブジェクト指向よくわかんない。な自分からすると、いんだよ、クラスだよクラス、デリゲートとかイベントハンドラとかごちゃごちゃうるせーんだよ。わかんねーよ。って思うことが多かったので良いかもしんない。
3.T1、T2、T3が嫌だ。
これは趣旨が違う気もするけど、まぁ、、、ね、、、自分の好み。