Effective C# 3rd 読書メモ 35 拡張メソッドをオーバーロードしてはいけない

拡張メソッドは以下の場合にのみ利用すべきである。 インターフェイスにデフォルト実装を追加する 閉じたジェネリック型に振る舞いを追加する 合成可能なインターフェイスを作成する 拡張メソッドは、型に機能を付け足すが、型の振る […]

Effective C# 3rd 読書メモ 34 関数パラメータを使って結合度を下げる

関数パラメータを使うことで、コンポーネント間の結合度を下げることができる。この方法には、実装上のトレードオフもあるが、クラスの継承やインターフェイスの実装よりも自由度の高い拡張ポイントを設けたい場合には有用である。 関数 […]

Effective C# 3rd 読書メモ 32 イテレーションとAction/Predicate/Functionの間の結合度を低くする

イテレーターメソッドでは、主に2種類の仕事をする。1つは一連の要素の繰り返しで、もう1つはそれぞれの要素に基づく処理(集計等)である。これらは別々のイテレーターメソッドで扱うべきである。 これらの仕事を行うには、デリゲー […]