|
|
|||||
Опять MVC - как лучше?
Всем привет!
Очень хочу уточнить по поводу проектирования вопрос. Сомневался, куда запихнуть тему - быть может в флейм? Есть у меня некое приложение, построенное, на архитектуре MVC - то есть есть модель, в которой хранятся все данные, по сеттерам происходит некая логика и диспатч об изменениях, которые ловят интересующиеся вьюверы и отображают. Теперь к конкретике. Допустим, есть у меня машинка. То есть кузов, колеса, все дела. Соответственно - это класс, например, Car. И есть в модели некий параметр усилия, допустим, power, который обозначает кутящий момент двигателя. По нажатии, предположим, пробела, растет power, и когда он преодолевает момент сопротивления (вес машины и т.п.), машина должна начинать движение. Отсюда вопрос. Как лучше сделать? С одной стороны, с точки зрения ООП, логично, что есть объект машина - со своими свойствами, описанием, функциями. И может быть один-единственный параметр - скорость (которая может быть равна как нулю, так и отрицательным значениям), которую Car считывает из модели и, в связи с этим, уже внутри неё самой происходит куча всякой движухи - крутятся колеса, анимация дыма выхлопной трубы, быть может, даже звуки мотора и т.п. С другой стороны, если скрупулезно придерживаться mvc - обсчитываться должно все в модели - то есть rotation колес, например, положение головки воспроизведения, а viewer должно лишь только отображать и ничего более. Интересно ваше мнение - как вы считаете делать более правильно? Действительно ли вся логика должна быть в моделях, или, все-таки, приватная логика объектов должна находиться внутри них? ps: лично мне на данный момент импонирует второй вариант - когда в модели лежат некие главные параметры, а в объектах-вьюверах происходит всякая логика. Мне кажется, это больше отвечает принципу модульности. Или, может быть, такой подход уже есть и называется уже не MVC, а Model-View-Object, например? Или, может, я что-то упускаю?
__________________
while(live()) { hope(); } |
Часовой пояс GMT +4, время: 17:22. |
|
« Предыдущая тема | Следующая тема » |
Теги |
MVC , mvo , Проектирование |
|
|