不変のものと変わるもの
データには不変の実態がある。データに対して違う解釈をしても意味のある結果には出来る。
ある解釈に対して違うデータを与えても意味のある結果は出せる。しかしデータのインターフェースが異なれば解釈できなくなる。
決して変わらないのはデータのインターフェースだ。C#だとプロパティだけのクラス。メソッドはデータの解釈なので変えられる。変える物は別のコンポーネントにする。不変のコンポーネントではインターフェースは作れるがメソッドの実装は出来ない。プロパティは実装できる。
不変のコンポーネントではメソッドを静的に定義できないのでデリゲートにして外部のコンポーネントからラムダ式を突っ込む形になるだろう。インターフェースはいらない。C#3.0ではほとんどのケースでインターフェースはいらなくなった。