Я сейчас читаю OO, прежде чем приступать к следующему крупному проекту. Чтобы дать вам быстрый фон, я разработчик PHP, работая над веб-приложениями.
Одной из областей, которая меня особенно интересует, является пользовательский интерфейс; в частности, как это сделать и подключить к моей модели OO.
Я занимаюсь чтением в этой области. Один из моих фаворитов: Построение пользовательских интерфейсов для объектно-ориентированных систем
"Все объекты должны предоставлять свой собственный интерфейс"
Размышляя о моей проблеме, я вижу, что это хорошо работает. Например, я создаю свой "пользовательский" объект для представления того, кто зарегистрировался на моем сайте. Один из моих методов - это "display_yourself" или аналогичный. Я могу использовать это во всем моем коде. Возможно, для начала это будет только их имя. Позже, если мне нужно настроить, чтобы показать свое имя + маленький аватар, я могу просто обновить этот метод, и hey-presto, мое приложение обновлено. Или, если мне нужно сделать свое имя ссылкой на их профиль, эй-престо, я могу легко обновить его с одного места.
В терминах системы OO; Я думаю, что этот подход работает хорошо. Если посмотреть на другие потоки StackOverflow, я нашел это в разделе "Разделение проблем": Soc
"В информатике разделение проблемы (SoC) - это процесс взлома компьютерной программы в отдельные функции, которые перекрываются в функциональность как можно меньше. озабоченность представляет собой любую часть интереса или сосредоточиться в программе. Как правило, проблемы являются синонимом функций или поведения. Прогресс в отношении SoC традиционно достигаемых посредством модульности и инкапсуляции, с помощь в скрытии информации".
На мой взгляд, я достиг этого. Мой объект пользователя скрывает всю информацию. У меня нет никаких мест в моем коде, где я говорю $user- > get_user_name(), прежде чем я его покажу.
Однако, похоже, это противоречит тому, что, по-видимому, думают другие люди как "лучшая практика".
Чтобы указать "выбранный" (зеленый) ответ на тот же вопрос:
"Разделение интересов код для каждой из этих проблем отдельный. Изменение интерфейса не должны требовать изменения код бизнес-логики и наоборот. Модель-View-Controller (MVC) образцом является прекрасным примером отделяя эти проблемы от совместимость программного обеспечения".
Почему это делает для улучшения обслуживания? Разумеется, с MVC мой взгляд должен знать о модели очень много? Прочтите статью JavaWorld для подробного обсуждения этого вопроса: Построение пользовательских интерфейсов для объектно-ориентированных систем
В любом случае... наконец-то дойдем до сути!
1. Можете ли вы порекомендовать какие-либо книги, которые подробно обсудят это? Мне не нужна книга MVC; Я не продаюсь на MVC. Я хочу книгу, в которой обсуждаются OO/UI, потенциальные проблемы, возможные решения и т.д. (Возможно, включая MVC) Arthur Riel Объектно-ориентированная эвристика дизайна
затрагивает его (и это отличная книга!), но я хочу что-то более подробное.
2. Может ли кто-нибудь изложить аргумент, который также объясняется, как статья Allen Holub JavaWorld, в которой объясняется, почему MVC - хорошая идея?
Большое спасибо за каждого, кто может помочь мне сделать вывод об этом.