Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

11.07.2015

Основні принципи об’єктно-орієнтованого програмування

Об’єктно-орієнтоване програмування — це порівняно молода концепція, що одержала широке поширення тільки в середині 1980-х рр. До цього програмування було виключно процедурним. Що відрізняє об’єктно-орієнтоване програмування від процедурного? Відповідаючи на це питання, можна виділити три основні принципи об’єктно-орієнтованого програмування: абстракцію, інкапсуляцію, успадкування.

Головною перевагою об’єктно-орієнтованого підходу є широке використання інкапсуляції. Інкапсуляція (або приховування реалізації) дозволяє створювати програму у вигляді окремих, більшою чи меншою мірою ізольованих блоків. Чому програму доводиться розбивати на такі блоки? Ви маєте вже достатній досвід у написанні сценаріїв, щоб розуміти, що, яким би досвідченим не був фахівець, простежити логіку коду з більш ніж 3-5 тисяч рядків йому не вдасться — це просто вище людських інтелектуальних здібностей. Сучасні ж програми утворені мільйонами і десятками мільйонів рядків коду. Природно, що написати конкурентноздатний комерційний продукт одна людина навряд чи може. Над створенням програм працюють групи кодерів, і часом досить значні (так, штат Microsoft — багато тисяч програмістів і тестерів). Кожен з програмістів в таких командах створює свій фрагмент коду. Далі всі фрагменти об’єднуються в єдиний блок, проводяться тестування, налагодження і т. д.

Подумайте, якби область видимості для всіх фрагментів програми була єдиною — які величезні проблеми виникли б, наприклад, із-за конфлікту імен. Щоб уникнути цього, кожен програміст повинен був би знати, як саме реалізований ділянку коду, написаний його колегою. А якщо змінних в програмі тисячі? У цьому випадку основний час кодера ухолило б на підбір ідентифікаторів, а не на створення алгоритму.

Рішенням описаної проблеми є інкапсуляція коду. Инкапсулированный фрагмент програми може бути представлений у вигляді «чорної скриньки», одержує на вході дані і видає на виході результат. Змінні і функції інкапсульованого коду володіють локальної видимістю, тому випадково змінити їх ззовні неможливо. Це вирішує проблему конфлікту імен. При використанні інкапсуляції коду програміст зовсім не повинен замислюватися про те, какреали-використані інші блоки програми. Він повинен знати лише те, що блок X виконує ті чи інші завдання, та іноді — в якій формі він приймає дані на обробку. Тому інкапсуляція значно полегшує розробку програм — створити без неї код більш ніж з тисячі рядків дуже складно. Інкапсуляція притаманна не тільки об’єктно-орієнтованого програмування. Так, у процедурному програмуванні вона реалізується, наприклад, за допомогою підпрограм (як ви пам’ятаєте, в ActionScript підпрограми називаються функціями). Проте в об’єктно-орієнтованому програмуванні її застосування значно розширюється завдяки введенню поняття об’єкта.

Об’єкт — це група змінних і підпрограм, об’єднаних в одну структуру за принципом виконуваних функцій. В об’єктно-орієнтованому програмуванні змінні об’єкта прийнято називати властивостями, а підпрограми — методами. Властивості визначають стан об’єкта, методи його поведінку. Методи, як правило, служать для зміни стану об’єкта, тобто при виклику потрібним чином зумовлюють його властивості, Властивості і методи об’єкта можуть володіти різним ступенем доступності. Вони можуть бути внутрішніми — при цьому ззовні до них можна отримати доступ, допускають тільки читання, що дозволяють читання і перевизначення, і нарешті, доступними для читання, видалення і перевизначення. Різна ступінь доступності властивостей дозволяє мінімізувати ймовірність збою в роботі всієї системи при помилковому видаленні або перевизначенні одного з властивостей. В ActionScript властивості і методи всіх вбудованих об’єктів захищені від видалення та перерахування циклом for—in, для більшості неприпустимо також перевизначення.

Зміст введення поняття «об’єкт» досить очевидний. По-перше, всі методи і властивості, які виконують завдання одного типу, можна зібрати в одному місці, що значно підвищує загальну стрункість програми. По-друге, можливо инкапсулировать змінні і підпрограми.

Користь від цього величезна. Наприклад, злиття рядків і об’єднання масивів виконують методи з одним ім’ям — concat(). Подібна перевантаженість ідентифікатора можлива тому, що дані методи розділені по різних об’єктах. По-третє, поняття об’єкта надзвичайно близько до стереотипів нашого мислення, що робить програмування на об’єктно-орієнтованій мові більш інтуїтивним порівняно з процедурним програмуванням. У цьому проявляється одна з основних концепцій об’єктно-орієнтованого програмування — абстракція.

Часто в програмі має бути кілька однотипних об’єктів. Створювати їх копіюванням коду не дуже технічно, так як це призведе до збільшення розміру програми. Зазвичай об’єкти формуються на базі шаблону, званого класом, з використанням оператора new. Наприклад, рядок new Ball() створить новий об’єкт класу Ball. Об’єкти класу називають його примірниками.

Всі методи і властивості, які повинні бути притаманні об’єкт, прописуються в його класі. Роль об’єкта і класу об’єктів не обмежується об’єднанням і инкапсуляцией змінних і підпрограм. З ними пов’язано друге найважливіше поняття об’єктно-орієнтованого програмування — спадкування.

Спадкування — це передача змінних і функцій між двома незалежними модулями програми. Навіщо потрібно спадкування? Насамперед, воно дозволяє мінімізувати розмір програми, а також трудомісткість її створення. Уявіть, що ви вирішили написати власний графічний редактор і вам треба розробити інструменти Line і Rectangle. Очевидно, що частина методів в об’єктах, їх реалізують, буде однакова. Наприклад, ідентичні в них будуть методи, які малюють пряму лінію. Має сенс дані методи винести в окремий об’єкт, а в об’єктах Line і Rectangle залишити позначку про те, що якщо методи з такими іменами потрібні, то вони повинні бути запозичені у зберігає їх об’єкті. При цьому відпадає необхідність двічі переписувати один і той же код, а також скорочується довжина програми.

Як ви пам’ятаєте, об’єкти створюються на базі визначень класів. При цьому частина властивостей і методів може передаватися об’єкта безпосередньо, а частина їм успадковується. Безпосередньо переносяться на об’єкт ті властивості і методи, які повинні мати для кожного екземпляра класу індивідуальні значення. Ті ж компоненти визначення класу, які повинні бути однакові для всіх об’єктів, що ними успадковуються.

Клас може успадковувати властивості іншого класу. При цьому даний клас буде по відношенню до об’єктів першого суперкласом. Вообше довжина ланцюжка спадкування може бути будь-якою. У деяких мовах ланцюжок спадкування може навіть гілкуватися.

Найважливішою концепцією об’єктно-орієнтованої моделі є поліморфізм. Як випливає з назви цього поняття, воно повинно означати множинність форм. І дійсно, поліморфізм означає здатність об’єкта змінювати форму в процесі виконання програми.

Якщо ви новачок у програмуванні, наведене опис принципів об’єктно-орієнтованого програмування може здатися вам малозрозумілим. У цьому випадку спробуйте зв’язати в своїй свідомості поняття об’єктно-орієнтованого програмування з предметами з реального життя. Це можна зробити, так як об’єктно-орієнтоване програмування створювався саме для того, щоб «олюднити» програмування, зробити написання програм більш близьким особливостям нашого мислення.

Спробуємо зіставити поняття об’єктно-орієнтованого програмування з звичайним котом. Дійсно, цілком можна вважати, що йде по даху кіт — це об’єкт. Він має властивості — забарвленням, розміром, віком і ін. Властивості кота поділяються на індивідуальні (наприклад, колір очей) і притаманні всьому безлічі (званого в об’єктно-орієнтованому програмуванні класом) котів (наприклад, будова серця). У свою чергу клас котів багато в чому схожий з класом ссавців (наприклад, кількістю лап або способом вигодовування потомства) і, отже, є його підкласом. Будь-який клас може породжувати кластери, які успадковують його властивості — так, вид «кіт домашній» входять тисячі найрізноманітніших порід. У цьому виражається концепція успадкування. Коту притаманні методи — алгоритми, що змінюють його властивості. Наприклад, бавовна холодильника — безвідмовний метод, змінює властивість положення кота на значення, що збігається з координатою кухні. Щоб покликати нашого вихованця на обід, зовсім не обов’язково знати його анатомію і особливості нервової діяльності.

Для цього достатньо володіти зовнішнім «інтерфейсним» методом «кіс-кіс». У цьому полягає ще один важливий принцип об’єктно-орієнтованого програмування — інкапсуляція (або приховування реалізації). На дію одного й того ж методу різні коти можуть реагувати по різному. Так, почувши гавкіт собаки, більш обережна тварина залізе на дерево, а більш сміливе продовжить спати як ні в чому не бувало. У термінах об’єктно-орієнтованого програмування подібне поводження об’єктів одного класу називається поліморфізмом.

Статті по Action Script на цю тему:

Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.
Клас Object

Кілька років тому стала популярною спам-технологія, називана «набиванням» ключовими словами, поско. Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

Це твердження вкрай рідко буває справедливим. Якщо це говорить фахівець по пошуковому маркетин. Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

Більшість компаній покладає відповідальність за пошуковий маркетинг тільки на веб-майстра або розр. Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

Думка про те, що пошуковий маркетинг і реклама в пошукових системах — одне і те ж, дуже распростр. Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

В даний час поширена думка, що якщо компанія може заплатити за позиціонування, чому. Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

Якщо ви отримали по електронній пошті невідомий «звіт про пошукову видимості», то, по всій вероятн. Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

Будь-оптимізатор, який обіцяє миттєву популярність вашого ресурсу, швидше за все, займається поиско. Основні принципи обєктно-орієнтованого програмування. 9. Обєктно-орієнтоване програмування.

Короткий опис статті: об’єктно орієнтоване програмування Основні принципи об’єктно-орієнтованого програмування корисна інформація, створення сайтів, flash, php, adobe photoshop

Джерело: Основні принципи об’єктно-орієнтованого програмування / 9. Об’єктно-орієнтоване програмування / Action Script

Також ви можете прочитати