Структурирано програмиране срещу обектно ориентирано програмиране
Обектно ориентираното програмиране (ООП) и структурираното програмиране са две програмни парадигми. Парадигмата на програмиране е основен стил на компютърното програмиране. Парадигмите на програмиране се различават по това как е представен всеки елемент от програмите и как са дефинирани стъпките за решаване на проблеми. Както подсказва името, ООП се фокусира върху представянето на проблеми с помощта на обекти от реалния свят и тяхното поведение, докато структурираното програмиране се занимава с организирането на програмата в логическа структура.
Какво е структурирано програмиране?
Приема се, че годината на раждане на структурираното програмиране е 1970 г. Структурираното програмиране се счита за подгрупа на императивното програмиране. Структурираната програма се състои от прости структури на програмен поток, които са йерархично организирани. Те са последователност, селекция и повторение. Последователността е ред от твърдения. Изборът означава избиране на оператор от набор от оператори въз основа на текущото състояние на програмата (например използване на оператори if), а повторението означава изпълнение на оператор до достигане на определено състояние (например използване на оператори for или while). ALGOL, Pascal, Ada и PL/I са някои от езиците за структурирано програмиране, използвани днес.
Какво е обектно ориентирано програмиране?
В ООП фокусът е върху мисленето за проблема, който трябва да бъде разрешен по отношение на елементи от реалния свят и представяне на проблема по отношение на обекти и тяхното поведение. Класовете изобразяват абстрактните изображения на обекти от реалния свят. Класовете са като чертежи или шаблони, които събират подобни елементи или неща, които могат да бъдат групирани заедно. Класовете имат свойства, наречени атрибути. Атрибутите се изпълняват като глобални и инстанционни променливи. Методите в класовете представляват или дефинират поведението на тези класове. Методите и атрибутите на класовете се наричат членове на класа. Екземпляр на клас се нарича обект. Следователно обектът е структура от данни, която много прилича на обект от реалния свят.
Има няколко важни ООП концепции като абстракция на данни, капсулиране, полиморфизъм, съобщения, модулност и наследяване. Обикновено капсулирането се постига чрез превръщане на атрибутите в лични, като същевременно се създават публични методи, които могат да се използват за достъп до тези атрибути. Наследяването позволява на потребителя да разширява класове (наречени подкласове) от други класове (наречени суперкласове). Полиморфизмът позволява на програмиста да замени обект от клас на мястото на обект от неговия супер клас. Обикновено съществителните, намерени в дефиницията на проблема, директно стават класове в програмата. И по подобен начин глаголите стават методи. Някои от най-популярните ООП езици са Java и C.
Каква е разликата между структурираното програмиране и обектно-ориентираното програмиране?
Ключовата разлика между структурираното програмиране и ООП е, че фокусът на структурираното програмиране е да структурира програмата в йерархия от подпрограми, докато фокусът на ООП е да разбие програмната задача в обекти, които капсулират данни и методи. ООП се счита за по-гъвкаво от структурираното програмиране, тъй като ООП разделя програма в мрежа от подсистеми, вместо да структурира програмата в йерархия. Въпреки че структурирането осигурява определена яснота, малка промяна в много голяма структурирана програма може да предизвика ефект на вълни от необходимост от промяна на множество подпрограми.