(フレームワークなしで)開発に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);
}
}
}