ドキュメントは「データ」,ビューは「データの表現」となる.
ボタン押下にて計算を行う.その計算結果を表示することを考える.
ビュー ドキュメント
| |
ボタン | |
---------->| |
| 計算依頼 |
|---------------------->|
| |計算実行
| 計算結果 |
|<----------------------|
計算結果表示 | |
| |
class Doc : public CDocument {
int value;
public:
void calculate();
int get_value() const { return value; }
};
void Doc::calculate() {
value = 計算結果
UpdateAllViews();
}
// 計算依頼
void View::OnCalc() { GetDocument()->calculate(); }
// 再描画
void View::OnUpdate() { Invalidate(); }
// 描画
void View::OnDraw(CDC* pDC) {
int n = GetDocument()->get_value();
}
こうすることにより,外見がどう変わっても計算は変わらない,計算がどう変わっても外見は変わらない,というメリットがある.
インターフェイスさえしっかりしていれば独立性の高い構造となる.
参照