Въведение в обектно-ориентираното програмиране

01.03.2020

С въвеждането на концепцията за "обект", разработчиците успяха да опишат структурата на софтуерните системи, използвайки термините на "реалния свят" и да поддържат системи с милиони линии код, което беше невъзможно при използване на процедурната парадигма. Процедурното програмиране не може да осигури адекватно ниво на развитие и подкрепа за сложни софтуерни системи в банковото дело, телекомуникациите и други области на дейност където изискванията за програмите постоянно стават все по-сложни. Стилът (парадигмата) на програмиране, който се основава на концепцията за клас и обект, е разработен като развитие на процедурна парадигма, която престава да бъде ефективна, когато сложността на разработените софтуерни проекти се нарича "обектно-ориентирано програмиране" (ООП).

История на развитието

За първи път обектно-ориентираното програмиране започна да се прилага в езика Simula 67, който имаше голямо влияние върху развитието на езици като Lisp и Smalltalk. Но най-голямото развитие на ООП е в средата на 90-те години, когато е създаден C ++ “OOP classic”, чиято работа с обекти е възприета от популярните програмни среди Delphi и VisualFoxPro. ООП продължава да се развива и сред новите парадигми могат да бъдат идентифицирани аспектно ориентирани и тематично ориентирани парадигми. Всеки обектно-ориентиран език разширява основните концепции на ООП с уникални допълнения и разширения, в зависимост от конкретната употреба. В тази статия ще разгледаме внедряването на ООП в средата за програмиране на Delphi и езика за PHP уеб програмиране.

Основни концепции на ООП

Парадигмата на ООП се състои от три основни понятия: капсулиране, полиморфизъм и наследяване.

обектно-ориентирано програмиране

Капсулиране (капсулиране)

Механизмът на комбиниране на код и данни в даден обект, както и тяхната защита от външни промени. Вътре в обект данните и кодът могат да бъдат отворени (публични) за достъп и промяна от други обекти и затворени (частни) за външни промени.

обектно ориентирано програмиране delphi

Полиморфизъм (полиморфизъм)

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

обектно ориентирано PHP програмиране

Наследствено (наследство)

OOP механизъм, който позволява на обект да има (наследява) методите на друг обект. По-точно, обектът получава (наследява) всички основни свойства на своя „предшественик“ и добавя към тях методите, присъщи само на него. "Наследникът" на даден обект вече ще наследи методите на два обекта и т.н. Наследяването също се нарича йерархия на класове. Използването на наследство улеснява управлението на големи количества информация и програмен код. След това можете да видите как обектите наследяват общи свойства от родителския клас "Car".

Обектно ориентирано програмиране - наследяване

Основните елементи на класове и обекти в ООП

Всички езици, които поддържат обектно-ориентирано програмиране, имат една и съща интерпретация на понятието клас и обект. Клас - тип данни за описание на свойствата и действието на “реален” обект, като например банкова сметка. Един обект е отделен екземпляр на клас. Метод - софтуерен код, който променя поведението на даден обект или неговото състояние в зависимост от стойността на неговите свойства. Модификатор на достъп - метод, който разделя елементите на класа на отворени и затворени полета. Constructor е метод, който се изпълнява първо след инициализиране на обекта и го връща в първоначалното му състояние. Destructor е метод, извикан при изтриване на обект. Диаграмата показва взаимодействието на елементите на класа.

Взаимодействие между елементите на класа

OOP прилагане в Delphi

В основата на средата за разработка е подмножество на езика Pascal с елементи на ООП - Object Pascal. Околната среда и езикът на Delphi бяха първата графична среда за разработка на MS Windows. Обектно-ориентираното програмиране delphi е набор от стандартни абстрактни класове, които капсулират някои елементи на Windows програма, като графичен интерфейс, работа с RAM и др. Delphi има значително влияние върху развитието на всички обектно-ориентирани езици, особено C #. за средата за разработка на Microsoft .NET. Последната версия на Delphi 8 работи само с .NET.

Йерархията на стандартните класове Delphi

Йерархия на класовете в Delphi

TObject е "родител" на всички класове на Delphi. Класът осигурява всичките си "потомци" с подкрепата на функциите на обектно-ориентираното програмиране и неговият конструктор гарантира, че програмата се стартира и работи правилно в Windows. TPersistent - осигурява обекти с взаимодействие на нивото на потоците за пренос на данни. Той предава потоци от данни и осигурява достъп до обектния инспектор. TComponent - ви позволява да създавате невизуални обекти и осигурява тяхното взаимодействие с цялата среда на разработка. Именно този позволява работа с обекти и програмни компоненти във визуална среда за разработка. Неговият потомък TGraphicControl създава различни неинтерфейсни елементи, например графични фонове и т.н. TControl - всички обекти, показвани на екрана (прозорци, списъци, бутони, форми и т.н.) са негови потомци. Капсулира работата с функции GUI Windows. TWinControl - осигурява работа с прозорци на програмата. Неговият потомък TCustomControl ви позволява да създавате контроли като текстови редактори, списъци за избор.

Прилагане на ООП в PHP

PHP е един от най-популярните езици за уеб разработка и първоначално е бил напълно процедурен език за програмиране. Следователно, обектно-ориентираното програмиране в php се появи по-късно, започвайки с четвъртата версия. Необходимостта от подкрепа на двата стила на програмиране - процедурни и обектно-ориентирани - доведе до факта, че елементите на ООП все още са допълнение, а не основа на езика. Но ситуацията се променя бързо към обекта PHP. Версията PHP 5 напълно поддържа всички елементи на ООП, а разработчикът има пълна свобода да създава свои собствени класове и обекти, за разлика от Делхи, където разработчикът трябва да използва стандартните класове по един или друг начин с всички възможни недостатъци. Синтаксисът на елементите на PHP обекта не е труден за програмисти, които преди това са работили с C ++ / # и Delphi.

Развитие на ООП

Парадигмата на обектно-ориентираното програмиране продължава да се развива и се използва в много елементи на софтуерните системи, например в специализирани бази данни, които поддържат модела на обектни данни, и в разработването на приложения за таблети и мобилни телефони. Сред новите езици на обекти можем да разграничим Python, който е широко използван за разработване на интернет системи, и Go, мултифункционалния език за програмиране на Google.