Я только начал изучать шаблон Model View Controller. Теперь я понимаю основы использования MVC, но когда я попытался реализовать MVC в простом тесте, я столкнулся с проблемой. Конечно, я мог бы легко настроить код, чтобы он работал, но я хочу научиться правильно реализовывать шаблон MVC.
Тест:
Я использовал Actionscript 3, чтобы сделать простую программу. Он состоит из башни и мыши. Башня находится в середине экрана. Когда я щелкаю в любом месте, турель поворачивается к точке, где я щелкнул. У мыши и башни есть своя модель, вид и контроллер. Когда я нажимаю, MouseModel изменяется правильно. Но для того, чтобы реальный TurretView отвечал, TurretModel должен изменить свою переменную вращения и отправить событие.
Вопрос в том, кто отвечает на событие MouseModel?
/------->MouseControl------\
/ \
MouseView ?<---MouseModel
TurretView <------------------TurretModel
TurretControl
Я решил, что лучше всего, чтобы MouseModel напрямую не влиял на TurretModel или TurretControl, потому что это потребовало бы, чтобы они были eventListener. Заставить TurretView прослушивать MouseModel, а затем сказать TurretControl настроить TurretModel, после того как TurretView может обновить через событие TurretModel, это выглядит как много дополнительного кода для простой задачи. Также я бы предпочел, чтобы MouseControl не влиял на TurretModel, это нарушило бы гибкость мыши в качестве входных данных для будущих классов.
Ой, а также в какой класс я помещаю код для расчета угла?
Заранее спасибо