No more Death March

あるSEのチラシの裏 C# WPF

アダプティブコードとデリゲート

 

C#実践開発手法 (マイクロソフト公式解説書)

C#実践開発手法 (マイクロソフト公式解説書)

 

 この本を読みながら考えを整理する。

第5章「単一責務の原則から」

定義済みデリゲートよりもインターフェースで責務を表現しましょうよ。という話だろうか。

 

定義済みデリゲートというとActionやFunc、PredicateやComparison

 

書籍では「インターフェースほど融通が利かないよ。」という旨の記述がある。

なんとなく分かる気がするけど具体的には?って言われるとわからないような。

 

考えてみる↓

1.そもそもデリゲートで記述すると実装依存

 ListクラスのSortメソッドやFindAllメソッドなんかはちょっとした処理ならfor eachを書かなくても匿名メソッドなんかでがりがり書けるけど、そこでしか使えない処理。

 じゃあすべてインタフェースを用意して、コンストラクタで渡して・・・なんてやってたら日が暮れるどころか納期すぎてまう。

 使い分けの問題なのだろうけど・・・。

 インターフェースなのでラップしたりコンポジットしたり、拡張性に制限がないのは優位かな。

 

2.デリゲートとクラスと使い分けがめんどくさい。

 オブジェクト指向よくわかんない。な自分からすると、いんだよ、クラスだよクラス、デリゲートとかイベントハンドラとかごちゃごちゃうるせーんだよ。わかんねーよ。って思うことが多かったので良いかもしんない。

 

3.T1、T2、T3が嫌だ。

 これは趣旨が違う気もするけど、まぁ、、、ね、、、自分の好み。