Page 55 - 4636
P. 55
розробки програмного забезпечення для Інтернету в силу їх невеликих розмірів. Однак якщо ви
озброїтеся ножівкою і спробуєте побудувати будинок, не маючи чіткого плану, вам навряд чи вдасться
домогтися результатів; це ж справедливо і відносно великих програмних проектів.
Багато веб-проектів розвиваються з простого набору сторінок, пов'язаних між собою
гіперпосиланнями, в складні додатки. Складні додатки, незалежно від того, чи представлені вони
набором діалогових вікон або динамічно генеруються HTML-сторінками, вимагають ретельно
продуманої методології розробки. ООП дає можливість управляти складністю проектів, підвищувати
придатність коду для багаторазового використання і, в остаточному підсумку, знижувати витрати на
супровід.
В об'єктно-орієнтованому програмному забезпеченні об'єкт являє собою унікальну та
ідентифіковану колекцію збережених даних і операцій, які здійснюють різні дії над цими даними.
Наприклад, ми могли б мати два об'єкти, які представляють кнопки. Навіть якщо обидві кнопки мають
однакові написи “ОК”, ширину 60 пікселів і висоту 20 пікселів, і у них збігаються будь-які інші
атрибути, тим не менш, необхідно мати можливість працювати з кожною з цих кнопок окремо. У
програмі для цього використовуються спеціальні змінні, які діють як дескриптори (унікальні
ідентифікатори) об'єктів.
Об'єкти можуть бути згруповані в класи. Класи представляють деякі набори об'єктів, які можуть
відрізнятися один від іншого за тими чи іншими ознаками, але при цьому повинні мати дещо спільне.
Класи містять об'єкти, в яких однакові операції виконуються однаково, а однакові атрибути
представляють одні і ті ж властивості, хоча значення цих атрибутів змінюються від об'єкта до об'єкта.
Іменник “велосипед” можна вважати класом об'єктів, що описує безліч різних велосипедів, які
мають багато загальних властивостей або атрибутів, таких як два колеса, колір і розмір, а також
виконувані ними операції, наприклад, пересування. Ваш власний велосипед можна вважати об'єктом,
який належить до класу велосипедів. Він має всі загальні властивості, притаманні всім велосипедам,
включаючи операцію пересування, яка виконується так само, як у більшості решти велосипедів, навіть
якщо ваш велосипед використовується набагато рідше. Атрибути вашого велосипеда мають унікальні
значення, оскільки він забарвлений, наприклад, у зелений колір, а далеко не всі велосипеди
пофарбовані саме так.
Поліморфізм
Об'єктно-орієнтована мова програмування має підтримувати поліморфізм (polymorphіsm), тобто
можливість виконувати одну і ту ж операцію в різних класах по-різному. Наприклад, у класах
автомобілів і велосипедів операції пересування відрізняються. Щодо реальних об'єктів, то це рідко
стає джерелом якихось проблем. Не можна сплутати велосипед з автомобілем і їхати на ньому, як на
автомобілі. У той самий час звичайний здоровий глузд щодо мов програмування діє не завжди, тому
мова такого типу повинна підтримувати поліморфізм, щоб знати, яку операцію пересування потрібно
використовувати стосовно конкретного об'єкта.
Поліморфізм - це скоріше характеристика поведінки, а не об'єктів. У РНР поліморфними можуть
бути тільки функції-члени класу. В реальному світі їм можна зіставити дієслова у природних мовах.
Адже велосипед, крім усього іншого, можна чистити, пересувати, розбирати, ремонтувати або
фарбувати.
Ці дієслова описують загальні дії, оскільки ви не знаєте, до якого об'єкта їх застосовують. (Подібна
абстракція об'єктів і дій - одна з відмінних характеристик людського розуму.) Наприклад, для їзди на
велосипеді вимагається виконання інших дій, ніж для їзди в автомобілі, незважаючи на те, що ці
поняття аналогічні. Дієслово «їздити» можна пов'язати з конкретним набором дій тільки після того, як
стане відомий об'єкт, на якому його застосовують.
Спадкування
Успадкування (inheritance) дозволяє створювати ієрархічні взаємозв'язки між класами,
використовуючи для цього підкласи (subclasses). Підклас успадковує атрибути і операції свого
суперкласу (superclass). Наприклад, автомобіль і велосипед мають деякі загальні характеристики. Ми
могли б створити клас транспортних засобів, які містять такі характеристики як атрибут кольору і
операцію пересування, властиві всім транспортним засобам, а потім успадкувати від класу
52