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