Programowanie strukturalne a programowanie obiektowe
Programowanie obiektowe (OOP) i programowanie strukturalne to dwa paradygmaty programowania. Paradygmat programowania jest podstawowym stylem programowania komputerowego. Paradygmaty programowania różnią się tym, w jaki sposób każdy element programów jest reprezentowany i jak definiowane są kroki rozwiązywania problemów. Jak sama nazwa wskazuje, OOP koncentruje się na reprezentowaniu problemów za pomocą rzeczywistych obiektów i ich zachowania, podczas gdy programowanie strukturalne zajmuje się organizowaniem programu w logiczną strukturę.
Co to jest programowanie strukturalne?
Zakłada się, że rokiem urodzenia programowania strukturalnego jest rok 1970. Programowanie strukturalne jest uważane za podzbiór programowania imperatywnego. Program strukturalny składa się z prostych struktur przepływu programu, które są hierarchicznie zorganizowane. Są to sekwencja, selekcja i powtarzanie. Sekwencja jest kolejnością instrukcji. Wybór oznacza wybranie instrukcji z zestawu instrukcji w oparciu o bieżący stan programu (np. Użycie instrukcji if), a powtarzanie oznacza wykonanie instrukcji do momentu osiągnięcia określonego stanu (np. Użycie instrukcji for lub while). ALGOL, Pascal, Ada i PL / I to niektóre ze strukturalnych języków programowania używanych obecnie.
Co to jest programowanie obiektowe?
W OOP nacisk kładziony jest na myślenie o problemie do rozwiązania w kategoriach elementów świata rzeczywistego i reprezentowanie problemu w kategoriach obiektów i ich zachowania. Klasy przedstawiają abstrakcyjne przedstawienia rzeczywistych obiektów. Klasy są jak plany lub szablony, które gromadzą podobne przedmioty lub rzeczy, które można grupować razem. Klasy mają właściwości zwane atrybutami. Atrybuty są implementowane jako zmienne globalne i zmienne instancji. Metody w klasach reprezentują lub definiują zachowanie tych klas. Metody i atrybuty klas nazywane są członkami klasy. Instancja klasy nazywana jest obiektem. Dlatego obiekt jest strukturą danych, która bardzo przypomina niektóre obiekty świata rzeczywistego.
Istnieje kilka ważnych koncepcji OOP, takich jak abstrakcja danych, enkapsulacja, polimorfizm, przesyłanie wiadomości, modułowość i dziedziczenie. Zazwyczaj hermetyzacja jest osiągana przez uczynienie atrybutów prywatnymi, przy jednoczesnym utworzeniu metod publicznych, których można użyć do uzyskania dostępu do tych atrybutów. Dziedziczenie pozwala użytkownikowi rozszerzać klasy (zwane podklasami) z innych klas (zwanych superklasami). Polimorfizm pozwala programiście podstawić obiekt klasy w miejsce obiektu jego superklasy. Zazwyczaj rzeczowniki znalezione w definicji problemu stają się bezpośrednio klasami w programie. Podobnie czasowniki stają się metodami. Niektóre z najpopularniejszych języków OOP to Java i C #.
Jaka jest różnica między programowaniem strukturalnym a programowaniem obiektowym?
Kluczowa różnica między programowaniem strukturalnym a OOP polega na tym, że programowanie strukturalne koncentruje się na ułożeniu programu w hierarchię podprogramów, podczas gdy OOP polega na rozbiciu zadania programistycznego na obiekty, które zawierają dane i metody. OOP jest uważany za bardziej elastyczny niż programowanie strukturalne, ponieważ OOP dzieli program na sieć podsystemów, a nie na strukturę programu w hierarchii. Mimo że strukturyzowanie zapewnia pewną przejrzystość, niewielka zmiana w bardzo dużym programie strukturalnym może powodować efekt pulsacyjny konieczności zmiany wielu podprogramów.