Шаблон Command. Проблема

Опубликовал read-php в 02.09.2012 Категория: Выполнение задач и представление результатов в PHP

В последние годы я редко завершал веб-проект без использования этого шаблона. Первоначально рассматриваемые в контексте проекта графического пользовательского интерфейса, командные объекты способствуют созданию проекта хорошего корпоративного приложения, поддерживают разделение между уровнями контроллера (обработка запросов и диспетчеризации) и моделью предметной области (логика приложения). Проще говоря, шаблон Command помогает создавать хорошо организованные системы, которые легко расширять.

Проблема шаблона Command

Во всех системах должно приниматься решение о том, что делать в ответ на запрос пользователя. В РНР процесс принятия решения часто осуществляется с помощью ряда отдельных контактных страниц. Выбирая страницу (feedback.php), пользователь явно дает понять функциям и интерфейсу, что ему требуется. Все чаще программисты на РНР делают выбор в пользу «единственной точки контакта». Но в любом случае получатель запроса должен передать полномочия уровню, более связанному с логикой приложения. Такое делегирование особенно важно, если пользователь может сделать запросы на разные страницы. В противном случае дублирование в проекте неизбежно.

Итак, предположим, что у нас есть проект с рядом задач, которые нужно выполнить. В частности, наша система должна разрешать одним пользователям входить в систему, а другим — оставлять отклики. Мы можем создать страницы login. php и feedback.php, которые решают эти задачи, создавая экземпляры соответствующих специализированных классов, которые и выполнят нужную работу. К сожалению, пользовательский интерфейс в системе редко точно соответствует задачам, для решения которых предназначена система. Например, функции входа в систему и оставления откликов могут понадобиться нам на каждой странице. Если страницы должны решать много различных задач, то, вероятно, мы должны представлять себе задачи как то, что можно инкапсулировать. Таким способом мы упростим добавление новых задач к системе и построим границу между уровнями системы. И это, конечно, приведет нас к шаблону Command.

P.S. Более детальную информацию о данном шаблоне и о языке php в целом можно узнать посетив форум для PHP программистов, где есть много специалистов в этой области готовых помочь новичкам.

Комментариев нет

Добавить комментарий