No more Death March

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

アダプティブコードの根っこの根っこ

 

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

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

 

 引き続き単一責務について考える。

 

プログラムって極限まで抽象化すると。

1.引数、戻り値の無い処理

2.引数だけがある処理

3.戻り値だけがある処理

4.引数も戻り値もある処理

の4パターン、たったこれだけ

 

.net frameworkの定義済みデリゲートを割り当ててみると

1.引数、戻り値の無い処理

Action()

2.引数だけがある処理

Action<T>(T obj)

3.戻り値だけがある処理

Func<TResult>()

4.引数も戻り値もある処理

Func<TResult,T>(T arg)

となる。(引数がいくつも連なるのは割愛するとして)

 

PredicateやConverterなんかは目的に特化しているけども、4.と同じ。

この辺は特化させた方が人の理解を促すから??

 

1~4をインターフェースで表すと。

こんな感じ?