Многие люди используют пример Форм, но это - на самом деле опасное. Проблема возникает, когда Вы интуитивно решаете, что квадрат является подклассом прямоугольника.
Когда дело доходит до поведения, квадрат более ограничен, чем прямоугольник, повреждая замещаемость. Например, мы могли спросить прямоугольный объект изменить его высоту. Если квадрат является подклассом прямоугольника, который означает, что мы должны смочь спросить тот же квадрат. Однако изменение высоты квадрата означало бы не квадрат больше! Конечно, мы могли увеличить ширину соответственно, но это не то, что мы ожидали бы, когда мы должны были спросить объект заявленного прямоугольника типа, который является на самом деле квадратом внизу, для изменения его высоты.
Это звонило принцип замены Лисков , и необходимо знать о нем при выполнении любой серьезной разработки OO.
Квадраты, конечно, sub установил из прямоугольников вместо класса sub . Вот в чем разница между ориентированными на данные и ориентированными на поведение подходами.
Как Jon, я предпочитаю Потоки как пример. Не трудно объяснить, даже непрограммистам и его ориентированному на поведение cleary, избегая counter-intuitivity примера форм.
Мне нравится Руководство PHP по ООП. Это по существу и есть много примеров.
На мой взгляд, это ваш лучший выбор. Документация здесь включает как технические объяснения, так и полезные примеры и формулировку на простом английском языке.
Имейте в виду, однако, что PHP ООП все еще находится в зачаточном состоянии, и, несомненно, будет много вещей которые сбивают с толку другие реализации ООП.
Это немного более продвинутая сторона ООП, так как это касается шаблонов проектирования, но мне очень нравится «Шаблоны архитектуры корпоративных приложений» Мартина Фаулера ( http://www.amazon. com / Patterns-Enterprise-Application-Architecture-Martin / dp / 0321127420 / ref = sr_1_1? ie = UTF8 & s = books & qid = 1255402272 & sr = 1-1 ). И вы никогда не ошибетесь с книгой шаблонов Банды четырех ( http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ )
В моделях обучения хорошо то, что они не зависят от языка. Изучите шаблон, используйте его (почти) на любом языке :)
Для запуска php лучше всего доступен phpmaual. Вы также можете попробовать http://w3schools.com Если вам нужны дополнительные ресурсы по концепции и примерам упс, вы можете перейти на http://www.phpclasses.org/ Здесь вы найдете несколько невероятных проектов php.
Поскольку он концептуален, а не зависит от языка, поищите любой хороший ресурс ООП на любом языке и попробуйте заставить его работать на PHP.
Посмотрите на такие концепции, как шаблоны дизайна, модульное тестирование и предметная область управляемая разработка, и вы откроете для себя много знаний ООП.
Начните использовать библиотеки, такие как Zend Framework и Doctrine PHP ORM в своих проектах PHP. Они объектно-ориентированы, и, используя их, вы разовьете лучшее понимание.
Также посетите phpPatterns и c2 wiki .
-Sam
На Lynda.com есть хороший видеокурс:
Lynda - PHP с MySQL Beyond the Basics