EventListener реализован в модели (с MVC)? - PullRequest
0 голосов
/ 03 апреля 2020

Согласно Model-View-Control - это интерфейс (Add-) EventListener, реализованный в модели (метод # 1), или есть отдельный контроллер (метод # 2)?

Метод # 1

public class Model implements AddEventListener {
    String name;

    public Model() {
    }

    @Override
    public void onAddEvent(AddInputEvent event) {
        name = event.getText();
    }
}

Метод # 2

public class Model {
    String name

    public Model() {}

    public void setName(String name) {
        this.name = name;
}

public class Controller implements InputEventListener {
    Model model;

    public Controller(Model model) {
        this.model = model;
    }

    @Override
    public void onAddEvent(AddInputEvent event) {
        model.setName(event.getText());
    }

Обработчик / Eventproducer / main (добавлен только для завершения)

public interface AddEventHandler {
    void add(EventListener listener);
    void remove(AddEventListener listener);
    void handle(InputEvent event);
}

public interface Console {
    void setHandler(InputEventHandler handler);
    abstract void start() {
        String input = Scanner.nextline();
        handler.handle(new InputEvent(this,input);
}

public class App {
    public static void main(String[] args) {

        Model model = new Model();
        Console console=new Console(automat);
        InputEventHandler handler=new InputEventHandler();

        // for method #1
        handler.add(model);

        // for method #2
        Controller controller = new Controller(model);
        handler.add(controller);


        console.setHandler(handler);
        console.start();
    }
}

Stackoverflow сообщение: «Это похоже на ваш пост в основном код; пожалуйста, добавьте больше деталей ". Большая часть кода предназначена для очистки, если код метода 1 или 2 не имеет смысла. Я думаю, что мой вопрос довольно вперед. Я не знаю, как изменить этот вопрос, чтобы избежать сообщения об ошибке.

...