Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MVC:如何处理复杂模型?_Java_Oop_Model View Controller_Model - Fatal编程技术网

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

Java MVC:如何处理复杂模型?,java,oop,model-view-controller,model,Java,Oop,Model View Controller,Model,我试图在我的开发中应用MVC(没有任何框架),但我遇到了很多麻烦。第一个麻烦:M! 如何处理具有深层数据结构和多个“根元素”的复杂模型 这是一个非常简单的例子。假设我们的模型只有两个“点”。哪种模型实现最好 想法1:使用一个入口点和吸气剂 想法2:使用一个入口点和代理方法 想法3:使用多个入口点和吸气剂 想法4:使用多个入口点和代理方法 MVC是关于分离关注点的 模型和视图是对象的集合 视图中的对象可能有按钮、窗口、文本区域等类型 模型中的对象具有与域相关的类型,如地址、邮政编码等 控制器对象为

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

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

想法1:使用一个入口点和吸气剂 想法2:使用一个入口点和代理方法 想法3:使用多个入口点和吸气剂 想法4:使用多个入口点和代理方法
MVC是关于分离关注点的

模型和视图是对象的集合

视图中的对象可能有按钮、窗口、文本区域等类型

模型中的对象具有与域相关的类型,如地址、邮政编码等

控制器对象为模型提供接口。视图对象与控制器对象对话以与系统交互

传统上,视图对象可以直接与模型对象对话,但不建议这样做

所有对象都符合OO原则,都是完整的对象

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;
    }
}
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);
    }
}
import java.awt.Point;
public class TwoPointsC {
    public enum Points {
        A, B;
        private final Point value = new Point();
        public Point get() {
            return this.value;
        }
    }
}
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);
        }
    }
}