Главная страница » ООП » Принципи ООП 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";
    }
}

У прикладі вище наведено якийсь абстрактний клас, від якого відбувається успадкування. У класах-нащадках використовується метод з таким самим ім’ям як у батька (перевизначається). У кожному випадку він виконує одне й те саме завдання – виводить тип, якому відповідає конкретний пост.

Leave a Reply