ここしばらく悩んでいたことが一気に解決した…ような気がする。
まとめると、
- Modelの状態の複製を作らない
- Viewer内に状態を作らず、常にModelから状態を参照する。
- なるべくデータ操作に係わるすべての演算はModelのメソッドとして関数やAlgorithmとして実装する。使い回しし易いようになるべくgenericな抽象化をする。
- 高い抽象性を表すAlgorithmは外部関数として実装した方がいいかも。
- ModelにI/Oを陽に組み込みたくない場合は、I/Oを抽象化したFunctorを作り、Model内に作りこんだgenericなAlgorithmに渡して処理を行う(I/O(この場合表示系)を行うメソッドの実行をViewerの中でのみに限定すればいいのであって、別に組み込んでもいいんだとは思うけど。でも見通しが悪くなりそうで)。
- 5.で渡すGenericなFunctor factoryを予め用意しておくと良いなぁ。
Doc-ViewにすべきかMVCにすべきか微妙な悩み方をしていて現在も判断保留なんだけど、GLUIをうまくマージするには今のままの「なんちゃってDoc-View」でいいのかなとか思ったり。
ねこさん的ぐうたらフレームワークの仕様の一部が出来てきた様な気がするのでぼちぼちまとめつつ、後はしばらく機能ロジックの実装かなぁ
0 件のコメント:
コメントを投稿