【问题标题】:MVC pattern and abstract factoryMVC 模式和抽象工厂
【发布时间】:2014-02-13 04:46:56
【问题描述】:

我的主要问题是实现与数据库服务器的通信,其中包含有关员工、任务、项目和部门实体的信息。我不知道数据库中将预先包含哪些实体(即可以将新类型的实体(例如公司)添加到数据库中)。让我们实现 MVC,这样我们就创建了以下 3 个抽象 JAVA 类:

public abstract class Model{
    public abstract Data getData();
    public abstract void setData();
}
public abstract class Controller{
    private Model model;
    private View view;

    public abstract void set_view(View view, Data data);
}
public abstarct class View{
    public abstract void generate_view();
}

我们将这些类包装在这样的抽象工厂中是否有意义:

public abstract class MVCFactory{
    public abstract Model createModel();
    public abstract View createView();
    public abstract Controller createConteroller();
}
public abstract class ControllerCreator{
    public abstract Controller createController();
}
public abstract class ModelCreator{
    public abstract Model createModel();
}
public abstract class ViewCreator{
    public abstract View createView();
}

【问题讨论】:

    标签: design-patterns model-view-controller abstract-factory


    【解决方案1】:

    要获得明确的答案,您必须重新表述您的问题,解释您要解决的问题。

    如果你想要创建MVC模型实例,将创建的细节保存在一个编码模块中,那么是的这绝对有意义。实际上,即使那样我也会创建一个容器接口MVCModel,它具有树属性、ModelControllerViewMVCFactory 将具有 one 创建函数,该函数将实例化 MVCModel 对象。

    public interface MVCModel{
        Model getModel();
        View getView();
        Controller getController();
    }
    
    public abstract class MVCFactory{
        public abstract MVCModel createModel();
    }
    

    希望我能帮上忙!

    【讨论】:

    • 感谢您的回答。但我不明白为什么创建容器接口MVCModel 会更好,因此 MVCFactory 只包含一个方法而不是 MVCModel 包含如上所示的三个工厂方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2012-04-08
    • 2017-07-31
    • 1970-01-01
    • 2010-09-06
    相关资源
    最近更新 更多