Xwab
Форумыnavigate_nextПрограммирование на PHP

Шаблоны проектирования
Сообщения
Okula

Для всех начинающих постигать основы ООП предлагаю ознакомится с основными шаблонами проектирования.
Для более опытных пользователей эта тема не создаст большого интереса, но всё же думаю они помогут новечкам разобраться в ОО структуре.
Итак поехали:

Первый шаблон: "Шаблон фабрики классов"
Чтобы было понятнее, рассмотрим применение шаблона фабрики классов на конкретном примере. Допустим, что ваш сайт предоставляет регистрацию различным видам пользователей. Один из них - гости, другие - постоянные клиенты, а третьи - администраторы. Все они наделены различными правами доступа к тем или иным участкам сайта. Как правило, в таких случаях в сценарии создаются базовый класс User и три производных класса - GuestUser, CustomerUser и AdminUser. И базовый класс, и дочерние классы могут содержать методы, позволяющие получить сведения об уровне привилегий пользователя.
Так же в архиве присутствует класс UserFactory, служащий для создания экземпляра класса, основываясь на имени пользователя.

Результат работы данного скрипта:
Права доступа пользователя Энди:
Чтение: Да
Изменениие: Да
Удаление: Да

Права доступа пользователя Стиг:
Чтение: Да
Изменениие: Нет
Удаление: Нет
Для пользователя Стиг требуется Flash-интерфейс

Права доступа пользователя Дэрик:
Чтение: Да
Изменениие: Да
Удаление: Нет
Для пользователя Дэрик требуется Flash-интерфейс

Пользователь Джонатан не зарегистрирован


__________
посл.ред. 30 Дек 2011, 14:31; всего 1 раз 29 Дек 2011, 23:45
Framework

я за MVC

30 Дек 2011, 0:11
reebest

Framework, +1

30 Дек 2011, 6:08
manyrus

Framework, mvc скорее не паттерн, а концепция. MVC реализуется паттернами проектирования.

30 Дек 2011, 6:27
LooK

manyrus, +1
добавлено спустя 1 минуту:
"Для всех начинаюш постигать основы ООП"
не думаю, что постигать основы нужно с паттернов
добавлено спустя 2 минуты:
Посты 2 и 3 советую почитать Мэта Зандстру

30 Дек 2011, 6:35
Okula

LooK пишет:
""Для всех начинаюш постигать основы ООП"
не думаю, что постигать основы нужно с паттернов"

А почему бы и нет. Архитектура построяния классов должна быть поставленна в первую очередь, и должна иметь логический смысл.

30 Дек 2011, 14:35
DarveL

лучше всем дружно вам выпрыгнуть с окна.
зачем плодить гк?
ща увидят умные слова напишут у себя в говнодвиге class DCMS { echo 'RULEZ!'; } у будут писать в описании использовано ООП и продавать еще на 50 рублей дороже.

30 Дек 2011, 14:44
JoiNeD

Okula, "Архитектура построяния классов должна быть поставленна в первую очередь, и должна иметь
логический смысл."
Но уж не такой как в твоем примере

30 Дек 2011, 14:59
Okula

Ну во первых - это не мой пример, а разработчиков PHP (Гутманса, Баккена и Ретанса), сделан он максимально просто чтобы дать понять пользователям смысл шаблона "фабрики классов". Я лишь добавил туда выброс исключения, так как небыло желания писать ещё один класс для обработки ошибок.
Если для вас это говнокод то тогда спуститесь с небес и покажите нам то что по вашему будет лучшим кодом, наглядно демонстрирующем простоту понимания шаблона фабрики классов. Не думаю что вам это удасться, а болтать вы все горазды о говнокоде

30 Дек 2011, 15:11
Framework

manyrus, а я разве писал разъяснения что такое MVC?

30 Дек 2011, 15:18
Ответить на тему