0

(フレームワークなしで)開発にMVCを適用しようとしていますが、多くの問題があります。最初のトラブル:M!深いデータ構造と複数の「ルート要素」がある複雑なモデルをどのように処理しますか?

これは非常に簡単な例です。モデルに「ポイント」が2つしかないとします。最適なモデルの実装はどれですか?

アイデアn°1:1つのエントリポイントとゲッターを使用する

import java.awt.Point;
public class TwoPointsA {
    private final Point A = new Point();
    private final Point B = new Point();
    public Point getA() {
        return this.A;
    }
    public Point getB() {
        return this.B;
    }
}

アイデアn°2:1つのエントリポイントを使用し、メソッドを委任する

import java.awt.Point;
public class TwoPointsB {
    private final Point A = new Point();
    private final Point B = new Point();
    public void translateA(final int dx, final int dy) {
        this.A.translate(dx, dy);
    }
    public void translateB(final int dx, final int dy) {
        this.B.translate(dx, dy);
    }
}

アイデアn°3:複数のエントリポイントとゲッターを使用する

import java.awt.Point;
public class TwoPointsC {
    public enum Points {
        A, B;
        private final Point value = new Point();
        public Point get() {
            return this.value;
        }
    }
}

アイデアn°4:複数のエントリポイントを使用し、メソッドを委任する

import java.awt.Point;
public class TwoPointsD {
    public enum Points {
        A, B;
        private final Point value = new Point();
        public void translate(final int dx, final int dy) {
            this.value.translate(dx, dy);
        }
    }
}
4

1 に答える 1

0

MVCは、懸念事項を分離することを目的としています。

MODELとVIEWは、オブジェクトのコレクションです。

ビュー内のオブジェクトには、BUTTON、WINDOW、TEXTAREAなどのタイプがあります。

モデル内のオブジェクトには、ADDRESS、POSTCODEなどのドメインに関連するタイプがあります

CONTROLLERオブジェクトは、MODELへのインターフェースを提供します。VIEWオブジェクトはCONTROLLERオブジェクトと通信して、システムと対話します。

従来、VIEWオブジェクトはMODELオブジェクトと直接通信できましたが、これはお勧めしません。

すべてのオブジェクトはOOの原則に準拠しており、完全なオブジェクトです。

于 2012-12-05T14:23:45.057 に答える