примеры грамотной реализации ООП

Romantik

TeaM PHPClub
точнее будет это вариант реализации MVC.
по грамотной реализации -поиск по форуму и фак
 

Фанат

oncle terrible
Команда форума
Литчно я ещё не встречал примерв грамотной реализации ООП в пхп.
 

Solid

Drosera anglica
Паттерн MVС использует подавляющее большинство frameworkов.

Я бы порекомендовал: http://www.clawphp.org/, требует php5.
 

Фанат

oncle terrible
Команда форума
Интересно, откуда пошла такая идея, МВЦ=ООП?
а если я пишу модуль для работы с поп3?
Что - кроме этого кривого механизма, в котором пхп берёт на себя роль веб-сервера, никаких других примеров использования ООП в природе не встречается?
 

Alexandre

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

Интересно, откуда пошла такая идея, МВЦ=ООП?
МВСи - это лишь один из патернов.
Если следовать самой идеадогии ООП, то Объектно-ориентированная модель классов среднего проекта должна быть на много сложнее, чем МВСи.
я согласен с Фанатом, что МВЦ=ООП - это заблуждение.

так ссылка до кучи http://www.developer.com/design/article.php/10925_3556036_1
 

Nirva

Dmitry Polyakov
Alexandre
а) при всем уважении - Буч не дает определение а цитиует Карделли и Вегнера,
б)
"карделли и вегнер говорят, что яп является оо тогда и только тогда, когда выполняются следующие условия условия:
- поддерживаются объекты, т.е. абстрации данных, имеющие интерфейс в виде именновых операций и собственный данный, с ограничением доступа к ним.
- объекты относятся к соответсвующим типам (классам)
- типы (классы) могут наследовать атрибуты супертипов (суперклассов)
....
К. и В. назвали такие (не имеющие поддержки вышеперечисленных свойств) языки объектными, но не оо...
"
(с)

т.е. представление программы в виде набора объектов, классы которых находятся в определенных иерархиях - уже ооп. нет наследования - абстрактная типизация.
итак. чего из этого нельзя сделать на пхп или реализация затруднена?
 

facelift

Новичок
http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование
---------------------------------
Важнейшие принципы

Абстракция данных
Объекты представляют собою не полную информацию о реальных сущностях предметной области, а их модели, адекватные решаемой задаче, работать с которыми намного удобнее, чем с низкоуровневым описанием всех возможных свойств и реакций объекта.
Наследование
Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (иногда его называют суперклассом). Наследование призвано отобразить такое свойство реального мира, как иерархичность.
Полиморфизм
Полиморфизмом называют явление, при котором все классы-потомки имеют общий интерфейс, выражающийся в наличии однотипных методов. Такие методы совпадают по форме (название, параметры, возвращаемые значения), но отличаются по реализации. Это позволяет обрабатывать объекты классов-потомков как однотипные объекты, не смотря на то, что их неполиморфная часть интерфейса может различаться значительно.
Инкапсуляция
Инкапсуляция — это принцип, согласно которому поведение любого класса должно рассматриваться как чёрный ящик — пользователь класса должен видеть и использовать только его интерфейс (от английского interface — внешнее лицо, т. е. список декларируемых свойств и методов) класса и не вникать в его внутреннюю реализацию. Этот принцип (теоретически) позволяет минимизировать число связей между классами и соответственно упростить реализацию.
------------------------------------
Вроде все есть.

Вопрос надо так поставить: Где вы видели грамотную иерархию на ПХП?
 

Alexandre

PHPПенсионер
facelift Паскаль - имеет все вышеперечисленные тобой типы, однако он относится к "объектному" типу языков, а не оо.
Nirva, у меня нет под рукой Буча, но
представление программы в виде набора объектов, классы которых находятся в определенных иерархиях
этого признака не достаточно для того чтоб назвать пхп ООП, этого достаточно для языка "объектного типа", типа паскаль.

один из признаков ООП языка (по Бучу или К. и В. ) - это типизация объектов. в пхп ее нет.

-~{}~ 22.05.06 15:01:

итак. чего из этого нельзя сделать на пхп или реализация затруднена?
на пхп можно реализовать большинство из методологии ООП и этим грех не воспользоваться.

-~{}~ 22.05.06 15:03:

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

Solid

Drosera anglica
Re: примеры грамотной реализации ООП

Автор оригинала: Toshka
подскажите, где найти нечто вроде этого http://www.phppatterns.com/docs/design/hello_world_in_patterns ? в какой то теме давали этот линк. может кто знаешь еще похожие статьи?
Тебе не хватает тех ссылок, которые указанны на странице? Прочитай вначале всё это: http://www.phppatterns.com/docs/?idx=design
Когда прочитаешь можешь написать в приват, я поделюсь электронной книгой Гаммы и PHP Design Patterns.

-~{}~ 22.05.06 15:16:

Фанат как обычно относится ко всему слишком предвзято...

Кстати, говоря об MVC, в PHP Claw реализован достаточно мощный иерархический "шаблон", разделяющий вид и логику.
И никто не говорил что MVC == OOP.
 

master_x

Pitavale XXI wieku
Alexandre
МВСи - это лишь один из патернов
а может все-таки не паттерн? и если паттерн то какой? я бы даже сказал, что MVC-- это архитектурная парадигма. И кстати, каждый ее видит по-своему. Правильно подметили, MVC!=ООП.
 

Solid

Drosera anglica
Вообще, впринципе, для каждодневных нужд можно знать всего несколько паттернов: Singleton, Factory, Register и Strategy, но знать как "Отчи Наши".
 

Alexandre

PHPПенсионер
а может все-таки не паттерн?
это именно паттерн.
Чтоб разобраться паттерн это или нет - давай сначало разберемся - что такое паттерн.
Паттерн - это хорошо сформулированное и эффективное в определённом контексте типовое решение программной проблемы.
Я считаю - что МВСи полностью подходит под это определение. Кстати от описан как паттерн в книге "Горький вкус ява" (если я не ошибаюсь книгой)

ведь паттерн это восвсе не обязательно описанный один из 23х от Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д.
Singleton, Factory, Register и Strategy ...

MVC-- это архитектурная парадигма. И кстати, каждый ее видит по-своему
тут я согласен. Хотя архитектурная парадигма и есть "некоторое типовое решение проблемы".
 

Solid

Drosera anglica
Alexandre
И много ли с тех пор было изобретено новых паттернов?
 

Alexandre

PHPПенсионер
И много ли с тех пор было изобретено новых паттернов?
много... еще 13 дополнительно прочел в книге "Паттерны проектирования, дополнительные штрихи" в заключение которой даны рекомендации "как правильно разрабатывать самому паттерн".

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

-~{}~ 22.05.06 16:40:

[offtop]Solid если ты не в ссстоянии разработать паттерн - это вовсе не значить, что другие этого не cмогут
 
Сверху