Увод у објектно оријентисано програмирање

1. 3. 2020.

Увођењем концепта "објекта", програмери су могли да опишу структуру софтверских система користећи термине "реалног света" и одржавају системе са милионима линија кода, што је било немогуће када се користи процедурална парадигма. Процедурално програмирање није могло да обезбеди адекватан ниво развоја и подршке за сложене софтверске системе у банкарству, телекомуникацијама и др подручја активности где захтеви за програме стално постају све сложенији. Стил (парадигма) програмирања, који се заснива на концепту класе и објекта, развијен је као развој процедуралне парадигме која је престала да буде делотворна док се сложеност софтверских пројеката развијала, и назвао је "објектно оријентисано програмирање" (ООП).

Историја развоја

По први пут се на језику Симула 67 почео примењивати објектно оријентисано програмирање које је имало велики утицај на развој језика као што су Лисп и Смаллталк. Највећи развој ООП-а био је средином 90-их, када је створен Ц ++ “ООП цлассиц”, чији је рад са објектима усвојен у популарним програмским окружењима Делпхи и ВисуалФокПро. ПЛО наставља да се развија, а међу новим парадигмама може се идентификовати аспектно оријентисана и субјективно оријентисана парадигма. Сваки објектно оријентисани језик проширује основне концепте ООП-а са јединственим додацима и проширењима, у зависности од специфичне употребе. У овом чланку размотрићемо имплементацију ООП-а у Делпхи програмском окружењу и језику ПХП веб развоја.

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

ООП парадигма се састоји од три основна концепта: енкапсулација, полиморфизам и наслеђивање.

објектно оријентисано програмирање

Енцапсулатион

Механизам комбиновања кода и података унутар објекта, као и њихова заштита од вањских промјена. Унутар објекта, подаци и код могу бити отворени (јавни) за приступ и измјену од стране других објеката и затворени (приватни) за вањске промјене.

објектно оријентисано програмирање делпхи

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

Најважнији елемент концепта ООП-а, који дозвољава употребу једног назива за функције које обављају сличне акције. У почетку је тешко разумети значење полиморфизма, па ћемо дати једноставан пример. У било ком програмском језику за сваки тип бројева, на пример, у класичном Ц за проналажење модула броја, потребно је да користимо функцију абс () за интегер, за лонг интегер лабс (), за бројеве с помичним зарезом фабс (). То доводи до потребе да се памти синтакса скупа функција и додатно оптерећење меморије и процесора рачунара. Објектно оријентисано програмирање, користећи механизам полиморфизма, омогућава вам да напишете своју функцију да одредите модул модула () и да га користите у аритметичким прорачунима, без размишљања о типу бројева. Само напишите у изразу модул () и добијте тачан одговор. Плус смањење програмског кода и оптерећења система. Други пример полиморфизма је приказан на слици - општа класа "Крива" (Облик) је "родитељ" за круг, правоугаоник и звезду.

објектно оријентисано пхп програмирање

Наслеђивање

ООП механизам који омогућава објекту да (наслеђује) методе другог објекта. Тачније, објект прима (насљеђује) све основне особине свог "претка" и додаје им методе својствене само њему. "Наследник" објекта ће наследити методе два објекта већ, итд. Наслеђивање се такође назива хијерархија класе. Коришћење наслеђивања олакшава управљање великим количинама информација и програмског кода. Затим можете видети како објекти наслеђују заједничка својства из родитељског разреда "Цар".

Објектно оријентисано програмирање - наслеђивање

Главни елементи класа и објеката у ООП-у

Сви језици који подржавају објектно оријентисано програмирање имају исту интерпретацију концепта класе и објекта. Класа - тип података за описивање својстава и рада „правог“ објекта, као што је банковни рачун. Објект је засебна инстанца класе. Метод - софтверски код који мења понашање објекта или његовог стања у зависности од вредности његових својстава. Модификатор приступа - метод који одваја елементе класе у отворена и затворена поља. Конструктор је метод који се извршава прво након иницијализације објекта и враћа га у првобитно стање. Деструцтор је метода која се позива када се објекат избрише. Дијаграм показује интеракцију елемената класе.

Интеракција елемената класе

ООП имплементација у Делпхију

У срцу развојног окружења је подскуп Пасцал језика са ООП елементима - Објецт Пасцал. Делпхи окружење и језик били су прво графичко развојно окружење за МС Виндовс. Објектно оријентисано програмирање делпхи је скуп стандардних апстрактних класа које садрже неке елементе Виндовс програма, као што је графички интерфејс, рад са РАМ-ом, итд. Делпхи је имао значајан утицај на развој свих објектно оријентисаних језика, посебно Ц #. за развојно окружење Мицрософт .НЕТ. Најновија верзија Делпхија 8 ради само са .НЕТ-ом.

Хијерархија стандардних класа Делпхи

Хијерархија класа у Делпхију

ТОбјецт је "родитељ" свих Делпхи класа. Класа обезбеђује све своје "потомке" уз подршку функција објектно оријентисаног програмирања, а његов конструктор осигурава да се програм покреће и исправно ради у Виндовсу. ТПерсистент - обезбеђује интеракцију објеката на нивоу тока преноса података. Он преноси токове података и обезбеђује приступ Објецт Инспецтор-у. ТЦомпонент - омогућава вам да креирате не-визуелне објекте и осигурате њихову интеракцију са целокупним развојним окружењем. Управо овај омогућава рад са објектима и програмским компонентама у визуелном развојном окружењу. Његов потомак ТГрапхицЦонтрол креира различите елементе интерфејса који нису прозори, на пример, графичке позадине, итд. Капсулира рад са функцијама ГУИ Виндовс ТВинЦонтрол - обезбеђује рад са прозорима програма. Његов потомак ТЦустомЦонтрол вам омогућава да креирате контроле као што су текст едитори, листе избора.

Имплементација ООП-а у ПХП-у

ПХП је један од најпопуларнијих језика за веб развој и изворно је био потпуно процедурални програмски језик. Због тога се објектно оријентисано програмирање у пхп појавило касније, почевши од четврте верзије. Потреба да се подрже оба програмска стила - процедурална и објектно оријентисана - довела је до чињенице да су елементи ООП-а још увек додатак, а не основа језика. Али ситуација се брзо мења ка објекту ПХП. Верзија ПХП 5 потпуно подржава све ООП елементе, а програмер има потпуну слободу да креира сопствене класе и објекте, за разлику од Делхија, где програмер мора да користи стандардне класе на један или други начин са свим могућим недостацима. Синтакса ПХП елемената објекта није тешка за програмере који су претходно радили на Ц ++ / # и Делпхи.

Развој ООП-а

Парадигма објектно оријентисаног програмирања наставља се развијати и користи се у многим елементима софтверских система, на примјер, у специјализираним базама података које подржавају модел података о објектима, те у развоју апликација за таблете и мобилне телефоне. Међу новим језицима објеката можемо разликовати Питхон, који се широко користи за развој Интернет система, и Го, мултифункционални програмски језик од Гоогле-а.