Возможный дубликат:
Альтернативы MVC
Я искал альтернативы, чтобы посмотреть, что доступно, но я ничего не могу найти.
Я читал во многих статьях, что веб-MVC никогда не является истинным MVC по некоторым причинам, слишком техничным для меня, чтобы действительно понять. И иногда предлагается искать что-то еще, но что такое elses, каковы другие типы архитектуры? Где я могу узнать больше об этом? Может ли кто-нибудь предоставить более подробную информацию о том, что доступно там?
Кстати, я уже читал о 3-х уровнях архитектуры, которые, на мой взгляд, очень похожи, если не доказано обратное.
Что еще там?
(Уже немного старше) сообщение в блоге от Ларри Гарфилда – лучший ресурс, который я знаю об этой теме:
Извините, вам нелегко переварить сравнения. Но есть, например, шаблон Model-View-Presenter , который заменил MVC и на самом деле ближе к тому, что практически делает большинство PHP-фреймворков. http://richnewman.wordpress.com/2008/02/26/model-view-presenter-variations-on-the-basic-pattern-introduction-to-cabscsf-part-24/
Статьи, подобные http://c2.com/cgi/wiki?TemplatingInPhp, предполагают, что сам PHP является лучшей моделью для webapps, а шаблоны вместо шаблонов не добавляют достаточных преимуществ.
Помимо PAC существует также Model-View-ViewModel (который в настоящее время является горячей темой на C #, но не в PHP) и Model-Delegate http://c2.com/cgi/wiki?ModelDelegate, которые распространяются на MVC. Но они могут быть не столь полезными для общих веб-приложений.
Model-View-Controller – довольно хорошая концепция, но интерпретация каркасами может быть разной. Обычно «представление» представляет собой шаблон с некоторой логикой в нем. Модель часто описывается как документ XML или YAML. Наконец, контроллер является частью кода на языке программирования.
Моя предложенная альтернатива основана на объектно-ориентированном дизайне. Просмотр – это объект. Модель – это объект. Контроллер тоже объект. Это открывает возможности для более высокого уровня эффективности, простоты и повторного использования кода.
Этот принцип реализован в моей структуре веб-разработки, и я также подробно описываю его в своем блоге – объектно-ориентированный MVC