В предыдущей статье мы рассмотрели основные преимущества ООП, в этой представлены основные принципы объектно-ориентированного программирования и рассматривается, как они взаимодействуют.
Для начала необходимо определить, основу ООП, что такое классы и объекты.
Классы — «чертежи» для объекта и фактический код, который определяет свойства и методы.
class Person { }
Объекты — использование экземпляров класса, которые содержат все внутренние данные и информацию о состоянии необходимого для работы вашего приложения.
$objPerson = new Person();
Итак, основные принципы ООП:
1. Наследование — способность определять класс одного вида как подтип другого типа класса (почти так же, как квадрат является своего рода прямоугольником).
2. Полиморфизм — позволяет определить класс как сущность более чем одной категории класса (так же, как автомобиль — «вещь с двигателем» и «вещь с колесами»).
Многие утверждают, что в php отсутствует классическое понятие полиморфизма, возможно это и так, но для реализации данного принципа используются интерфейсы — способ указать, что сущность способна делать, что-то без определения, как это должно быть сделано, например, собака и человек — это «вещи, которые ходят», но они делают это очень по-разному :).
interface iAlive { public function iCanWalk(); } class Person implements iAlive { public function iCanWalk(); public function iCanSay(); } class Dog implements iAlive { public function iCanWalk(); public function iCanBark(); } $objPerson = new Person(); $objDog = new Dog();
3. Инкапсуляция — способность объекта защищать доступ к его внутренним данным.
На ранних стадиях работы многие программисты не задумываются над темой сокрытия данных посредством присвоения области видимости методам и свойствам private и protected, в основном пишут public, но со временем, понимают необходимость такого механизма, но это приходит с практикой.