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