|
|||||||||||||||||||
|
|||||||||||||||||||
|
Обектно-ориентирано програмиране
Обекти - Пакетират данни и функционалност заедно в обособени единици в една компютърна програма;
Абстракция — Способността на една програма да игнорира някои аспекти на информацията, с която работи — способността да се съсредоточава върху същественото. Всеки обект в системата служи като модел на един абстрактен „агент“, който може да извършва дадена работа, да променя състоянието си и да докладва за него и да „общува“ с други обекти в системата без да разкрива как са реализирани тези свойства. Процесите, функциите или методите също подлежат на абстракция и когато те са абстрактни се използват разнообразни техники за разширяване на една абстракция:
Капсулиране — наричано също скриване на информация: Прави невъзможно за потребителите на даден обект да променят неговото вътрешно състояние по неочакван начин; само вътрешните методи на обекта имат достъп до неговото състояние. Всеки клас има интерфейс, който определя как другите класове могат да взаимодействат с него. Това предпазва потребителите от разстройване на инвариантите на класа, което е полезно, защото позволява реализацията на един клас обекти да бъде променена в аспекти, които не са достъпни чрез интерфейса без това да изисква промени в потребителските програми. Дефинициите за капсулиране се съсредоточават по-скоро върху групирането и пакетирането на сродна информация (кохезия) отколкото върху сигурността. Обектно-ориентираните езици за програмиране обикновено не предлагат формални ограничения с цел сигурност на вътрешното състояние на обектите. Използването на един метод за достъп е въпрос на конвенция за дизайна на интерфейса. Полиморфизъм — Различни неща или обекти могат да имат еднакъв интерфейс или да отговарят на едно и също (по наименование) съобщение и да реагират подходящо в зависимост от природата или типа на обекта. Това позволява много различни неща да бъдат взаимозаменими. Например, ако една птица получи съобщение „движи се бързо“, тя ще маха с крила и ще лети. Ако един лъв получи същото съобщение, той ще тича, използвайки краката си. И двете животни отговарят на една и съща молба по начини, които са подходящи за всяко от тях.
Наследяване — Организира и подпомага полиморфизма и капсулирането, като позволява да бъдат дефинирани и създавани обекти, които са специализирани варианти на вече съществуващи обекти. Новите обекти могат да използват (и разширяват) вече дефинираното поведение, без да е необходимо да реализират това поведение отново. Това обикновено се прави чрез групиране на обектите в класове и дефиниране на нови класове, които разширяват съществуващи класове и подреждане по този начин на класовете в дървета или решетки, отразяващи сходствата в тяхото поведение. Докато използването на класове е най-популярната техника за наследяване, има и друга известна техника, наречена Прототипно-базирано програмиране. |
||||||||||||||||||