現時点でのペイントツール プロトタイプの構成。設計のプロトタイプ。
d:id:pmint:20080116:p1と比べて…
ブラシとキャンバスの依存関係を逆転。
ブラシがキャンバスを呼び出すように。
キャンバスは扱われる側になるように。
Commandパターン
そのほか、Tool系クラスはCommandパターンに。
ToolがCommandを担当、その集約をInvokerであるTabletが持つ。
Receiver役はCanvasになり、Client役がコントロールクラス*1でもあるPaintが担う。
パレット
パレットはUIとして。
実態はキャンバスを埋め込んだフォームだから。
既製のクラス
FormとBitmapは.NET Frameworkにあるもの。
拡張方法
拡張はツールのサブクラスを作ることで。