MVC:如何处理复杂的模型?

时间:2012-12-05 13:50:47

标签: java oop model-view-controller model

我正在尝试在我的开发中应用MVC(没有任何框架)但我遇到了很多麻烦。第一个麻烦:M! 如何处理具有深层数据结构和多个“根元素”的复杂模型?

这是一个非常简单的例子。假设我们的模型只有两个“点”。哪个是最好的模型实现?

Idea n°1:使用一个入口点和getter

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:使用一个入口点并委托方法

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;
        }
    }
}

Idea 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);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

MVC是关于分离的问题。

MODEL和VIEW是对象的集合。

VIEW中的对象可能包含BUTTON,WINDOW,TEXTAREA等类型。

您的MODEL中的对象具有与您的域相关的类型,例如ADDRESS,POSTCODE等

CONTROLLER对象为您的MODEL提供界面。 VIEW对象与CONTROLLER对象通信以与您的系统进行交互。

传统的VIEW对象可以直接与MODEL对象对话,但不建议这样做。

所有对象都符合OO原则并且是完整的对象。