Об’єктно-орієнтований підхід в програмуванні: поняття, застосування і розробка

Поліморфізм

Другий «стовп» розробки об’єктно-орієнтованим підходом — поліморфізм. Бьерн Страуструп, творець мови C++, сформулював визначення поліморфізму так: «Один інтерфейс — багато реалізацій». Коротенько, поліморфізм — це можливість створювати абстрактний клас, який описує загальну конструкцію структури, а від нього вже створюються похідні класи, що реалізують відсутні механізми. Наприклад, при створенні персонажа комп’ютерної гри, з точки зору об’єктно-орієнтованого підходу, логічно буде спочатку реалізувати абстрактний клас Person, і від нього вже створювати конкретні класи: Archer, Healer, Warrior і так далі.

Або ще приклад з машиною. Якщо ми оперуємо однією машиною, з кількома полями і методами, нам нічого не варто вручну поміняти кілька значень в коді. Але скільки може бути таких машин? Або, наприклад, користувачів в соціальній мережі? У кожного є ім’я, прізвище, сімейний стан, фотоальбом, величезна кількість значень, посилань на інші сторінки, на інших користувачів і так далі. І якщо розробники соціальної мережі вирішать зробити редизайн, і якісь параметри користувача змінити чи прибрати, то з таким підходом виникне велика кількість роботи. Вирішує цю проблему об’єктно-орієнтований підхід. Класи створюються не для кожного конкретного об’єкта, а спочатку проектується абстрактний клас, і від нього створюються класи-спадкоємці. Як і інкапсуляція, це друге найважливіше правило ООП.