История изменений
Исправление pathfinder, (текущая версия) :
MVC - это абстрактная абстракция. Ньюансы воплощения могут оказывать не меньшее влияние на результат, чем сама обощенная концепция.
Вот один пример реализации MVC:
Тебе будут нужны классы модели и два интерфейса SomeView и SomeController. Интерфейсы будут содержать набор методов, которые должны реагировать на некие события. Внутреннее устройство отображения и контроллера можно спрятать за интерфейсом, а модель прятать замучаешься, так как она скорее всего будет состоять из кучи классов, описывающих данные.
Класс SomeForm унаследуется от интерфейса отображения и будет реагировать на события изменения модели. Т.е. когда модель поменяла что-то у себя,то она вызвает некий метод интерфейса SomeView. Класс SomeForm реагирует на это изменение и приводит ГУЙ в состояние, согласованное с моделью, возможно для этого нужно будет посмотреть на модель и её данные.
Теперь о контроллере. Методы интерфейса SomeController будет вызывать класс SomeForm, реагируя на действия пользователя. Пользователь нажал кнопку на форме/кликнул по элементу/нажал Enter на клавиатуре или что-то ещё, класс SomeForm осмыслит этот ввод и сообщит контроллеру о том, что надо совершить некую конкретную операцию, вызвав соответствующий метод интерфейса контроллера.
Итоги:
Только контроллер модифицирует данные модели. Только отображение занимается приведением гуй-я в правильное, согласованное состояние. Внутренне устройство модели видят все. Внутренне устройство контроллера и представления скрыто.
Исправление pathfinder, :
MVC - это абстрактная абстракция. Ньюансы воплощения могут оказывать не меньшее влияние на результат, чем сама обощенная концепция.
Вот один пример реализации MVC:
Тебе будут нужны классы модели и два интерфейса SomeView и SomeController. Интерфейсы будут содержать набор методов, которые должны реагировать на некие события. Внутреннее устройство отображения и контроллера можно спрятать за интерфейсом, а модель прятать замучаешься, так как она скорее всего будет состоять из кучи классов, описывающих данные.
Класс SomeForm унаследуется от интерфейса отображения и будет реагировать на события изменения модели. Т.е. когда модель поменяла что-то у себя,то она вызвает некий метод интерфейса SomeView. Класс SomeForm реагирует на это изменение и приводит ГУЙ в состояние, согласованное с моделью, возможно для этого нужно будет посмотреть на модель и её данные.
Теперь о контроллере. Методы интерфейса SomeController будет вызывать класс SomeForm, реагируя на действия пользователя. Пользователь нажал кнопку на форме/кликнул по элементу/нажал Enter на клавиатуре или что-то ещё, класс SomeForm осмыслит этот ввод и сообщит контроллеру о том, что надо совершить некую конкретную операцию, вызвав соответствующий метод интерфейса контроллера.
Итоги:
Только контроллер модифицирует данные модели. Только отображение занимается приведением гуй-я в правильное, согласованное состояние. Внутренне устройство модели видят все.
Исправление pathfinder, :
MVC - это абстрактная абстракция. Ньюансы воплощения могут оказывать не меньшее влияние на результат, чем сама обощенная концепция.
Вот один пример реализации MVC: Тебе будут нужны классы модели и два интерфейса SomeView и SomeController. Интерфейсы будут содержать набор методов, которые должны реагировать на некие события. Внутреннее устройство отображения и контроллера можно спрятать за интерфейсом, а модель прятать замучаешься, так как она скорее всего будет состоять из кучи классов, описывающих данные.
Класс SomeForm унаследуется от интерфейса отображения и будет реагировать на события изменения модели. Т.е. когда модель поменяла что-то у себя,то она вызвает некий метод интерфейса SomeView. Класс SomeForm реагирует на это изменение и приводит ГУЙ в состояние, согласованное с моделью, возможно для этого нужно будет посмотреть на модель и её данные.
Теперь о контроллере. Методы интерфейса SomeController будет вызывать класс SomeForm, реагируя на действия пользователя. Пользователь нажал кнопку на форме/кликнул по элементу/нажал Enter на клавиатуре или что-то ещё, класс SomeForm осмыслит этот ввод и сообщит контроллеру о том, что надо совершить некую конкретную операцию, вызвав соответствующий метод интерфейса контроллера.
Итоги: Только контроллер модифицирует данные модели. Только отображение занимается приведением гуй-я в правильное, согласованное состояние. Внутренне устройство модели видят все.
Исходная версия pathfinder, :
MVC - это абстрактная абстракция. Ньюансы воплощения могут оказывать не меньшее влияние на результат, чем сама обощенная концепция.
Вот один пример: Тебе будут нужны классы модели и два интерфейса SomeView и SomeController. Интерфейсы будут содержать набор методов, которые должны реагировать на некие события. Внутреннее устройство отображения и контроллера можно спрятать за интерфейсом, а модель прятать замучаешься, так как она скорее всего будет состоять из кучи классов, описывающих данные.
Класс SomeForm унаследуется от интерфейса отображения и будет реагировать на события изменения модели. Т.е. когда модель поменяла что-то у себя,то она вызвает некий метод интерфейса SomeView. Класс SomeForm реагирует на это изменение и приводит ГУЙ в состояние, согласованное с моделью, возможно для этого нужно будет посмотреть на модель и её данные.
Теперь о контроллере. Методы интерфейса SomeController будет вызывать класс SomeForm, реагируя на действия пользователя. Пользователь нажал кнопку на форме/кликнул по элементу/нажал Enter на клавиатуре или что-то ещё, класс SomeForm осмыслит этот ввод и сообщит контроллеру о том, что надо совершить некую конкретную операцию, вызвав соответствующий метод интерфейса контроллера.
Итоги: Только контроллер модифицирует данные модели. Только отображение занимается приведением гуй-я в правильное, согласованное состояние. Внутренне устройство модели видят все.