Главная страница » PHP » Принципы ООП PHP (основные понятия и парадигмы)

Принципы ООП PHP (основные понятия и парадигмы)

Основные понятия и принципы ООП

Принципы ООП (объектно ориентированного программирования) — это парадигмы на которых базируется подход в основе которого лежит объектная модель.

Объект — это совокупность характеристик и поведений, которое соответствует некой сущности.

Чтобы создать объект в программе, нужно описать шаблон для этого объекта, который называется классом. Объекты создаются на основе уже существующих классов.

Характеристики объекта в классе описываются в виде переменных, которые называются полями.

Поведение объекта в классе описывается функциями, которые называются методами.

Объектно ориентированное программирование базируется на принципах:

  • инкапсуляция
  • наследование
  • абстракция
  • полиморфизм

Инкапсуляция — объединение полей и методов в классе, с целью закрыть прямой доступ к полям и открыть его для методов, которые этими полями управляют.

Согласно инкапсуляции, доступ к полям рекомендуется закрывать используя соответствующие спецификаторы доступа. Чтобы предоставить возможность вносить изменения или получать значения полей,  создаются специальные  методы.

Метод, возвращающий значение поля, называется геттер (от английского get — «получать»).

Метод, устанавливающий значение поля, называется сеттер (от английского set — «устанавливать»).

public function getField()
{
   return $this->field;
}

public function setField($newValue)
{
   if ($newValue < 0) { 
       $newValue = -1; 
   } 
   
   return $this->field = $newValue;
}

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

Например, в минуте не может быть более 60 секунд и так далее.

Наследование — позволяет создавать классы на основе уже существующих. Тем самым облегчая задачу по созданию новых классов с точки зрения использования уже существующего программного кода. Класс, от которого произошло наследование, называется базовым или родительским. Классы, которые произошли от базового, называются потомками, наследниками или производными классами. В PHP также используются абстрактные классы.

Абстрактный класс — это класс, содержащий хотя бы один абстрактный метод. Он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного.

Полиморфизм (греч. «многообразие форм») —  в программировании означает возможность использования одного имени для методов  разных классов находящихся в одной иерархии наследования (т.е. в родственных классах) с целью выполнения схожих действий.

Создание в производном классе метода с таким же именем что и имя метода родительского класса, называется переопределением метода.

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

abstract class Post {
    abstract public function printType();
}

class News extends Post {
    public function printType()
    {
        echo "News";
    }
}

class Article extends Post {
    public function printType()
    {
        echo "Article";
    }
}

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

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