Programowanie strukturalne a programowanie obiektowe
Programowanie zorientowane obiektowo (OOP) i programowanie strukturalne to dwa paradygmaty programowania. Paradygmat programowania to podstawowy styl programowania komputerowego. Paradygmaty programowania różnią się sposobem reprezentacji każdego elementu programu i sposobem definiowania kroków w celu rozwiązania problemów. Jak sama nazwa wskazuje, OOP koncentruje się na reprezentowaniu problemów przy użyciu obiektów świata rzeczywistego i ich zachowania, podczas gdy programowanie strukturalne zajmuje się organizowaniem programu w strukturę logiczną.
Co to jest programowanie strukturalne?
Przyjmuje się, że rok narodzin programowania strukturalnego to 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ą zorganizowane hierarchicznie. Są to sekwencja, selekcja i powtórzenie. Sekwencja to kolejność wypowiedzi. Wybór oznacza wybranie instrukcji ze zbioru instrukcji na podstawie aktualnego stanu programu (np. użycie instrukcji if), a powtarzanie oznacza wykonanie instrukcji aż do osiągnięcia określonego stanu (np. użycie instrukcji for lub while). ALGOL, Pascal, Ada i PL/I to tylko niektóre ze strukturalnych języków programowania używanych obecnie.
Co to jest programowanie obiektowe?
W programowaniu obiektowym nacisk kładziony jest na myślenie o problemie do rozwiązania w kategoriach elementów świata rzeczywistego oraz przedstawianie problemu w kategoriach obiektów i ich zachowania. Zajęcia przedstawiają abstrakcyjne reprezentacje obiektów świata rzeczywistego. Zajęcia są jak schematy lub szablony, które gromadzą podobne przedmioty lub rzeczy, które można pogrupować. Klasy mają właściwości zwane atrybutami. Atrybuty są implementowane jako zmienne globalne i instancyjne. 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 jakiś obiekt ze świata rzeczywistego.
Istnieje kilka ważnych koncepcji OOP, takich jak abstrakcja danych, enkapsulacja, polimorfizm, przesyłanie wiadomości, modułowość i dziedziczenie. Zazwyczaj enkapsulację osiąga się, czyniąc atrybuty prywatnymi, tworząc jednocześnie metody publiczne, których można użyć w celu uzyskania dostępu do tych atrybutów. Dziedziczenie pozwala użytkownikowi na rozszerzenie klas (nazywanych subklasami) z innych klas (nazywanych superklasami). Polimorfizm pozwala programiście na podstawienie obiektu klasy w miejsce obiektu jego superklasy. Zazwyczaj rzeczowniki znajdujące się w definicji problemu stają się bezpośrednio klasami w programie. I 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 programowaniem obiektowym polega na tym, że programowanie strukturalne skupia się na strukturze programu według hierarchii podprogramów, podczas gdy programowanie obiektowe skupia się na podziale zadania programistycznego na obiekty, które hermetyzują dane i metody. Programowanie obiektowe jest uważane za bardziej elastyczne niż programowanie strukturalne, ponieważ programowanie obiektowe oddziela program w sieć podsystemów, zamiast strukturyzować program w hierarchii. Nawet jeśli strukturyzacja zapewnia pewną przejrzystość, niewielka zmiana w bardzo dużym ustrukturyzowanym programie może spowodować efekt domina polegający na konieczności zmiany wielu podprogramów.