0

Моя основная проблема заключается в реализации связи с сервером базы данных, содержащей информацию о сущности сотрудников, задач, проектов и отделов. Я не знаю, какие объекты будут содержаться в БД заранее (т. Е. Можно добавить новый тип объекта (например, компания) в БД). Пусть мы реализация MVC таким образом, что мы создали следующие 3 абстрактных JAVA классов:MVC шаблон и абстрактная фабрика

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

ли это сделать чувство, что мы wraped это классы в абстрактной фабрике, как это:

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

ответ

0

Чтобы получить четкий ответ, вы должны перефразировать свой вопрос, объяснив, в чем проблема, которую вы пытаетесь решить.

Если вы хотите создать экземпляры модели MVC, сохраняя детали создания в одном модуле кодирования, то да это абсолютно значимо. Собственно, даже тогда я бы создал контейнерный интерфейс MVCModel, который имел бы свойства дерева, Model, Controller и View. MVCFactory будет иметь один создать функцию, которая создаст объект MVCModel.

public interface MVCModel{ 
    Model getModel(); 
    View getView(); 
    Controller getController(); 
} 

public abstract class MVCFactory{ 
    public abstract MVCModel createModel(); 
} 

Надеюсь, я помог!

+0

Спасибо за ваш ответ. Но я не понимаю, почему лучше создать контейнерный интерфейс 'MVCModel', и поэтому MVCFactory содержит только один метод, а не' MVCModel' содержит три фабричных метода, как показано выше? –

+0

У меня вопрос. –

Смежные вопросы