C# Interpreter

C# デザインパターン Command

ざっくりまとめると、commandにreceiverを渡す。(commandがreceiverを保持)
渡し方は、Command cmd = new ConcreateCommand(receiver)
あるいは、上記のようなSetReceiver(receiver)とか。
そして、commandのExecute()の中でreceiverのAction()を呼ぶ。
Invokerは呼び出しで、そこからcommandのExecute()を呼ぶ。
処理の実体はreceiverのAction()の中。

C# Proxy

C# Flyweight

C# State

C# Memento

C# Observer

C# Mediator

C# Facade

C# 継承実験

インスタンスを入れる変数の型 =  派生

フィールドは
基底を派生で上書きした場合、派生が呼ばれる
基底を派生で上書きしない場合、基底が呼ばれる。

基底クラスメソッドでは
基底クラスのフィールドのみ変更できる。

派生クラスメソッドでは
基底クラスのフィールドが変更でき、
派生クラスのフィールドも変更できる。
(Virtula-Overrideしていても挙動は同じ)

インスタンスを入れる変数の型 = 基底

フィールドは
基底を派生で上書きしても、常に基底が呼ばれる。

基底クラスメソッドでは
基底クラスのフィールドのみ変更できる。

派生クラスメソッドは
呼べない。

Virtual-Override