Programowanie zorientowane obiektowo
https://en.wikipedia.org/wiki/Procedural_programming
https://en.wikipedia.org/wiki/Object-oriented_programming
https://en.wikipedia.org/wiki/Software_design_pattern
WPROWADZENIE
Python jest językiem do programowania zorientowanego obiektowo
(OOP, object-oriented programming).
Cechy takiego programowania są następujące:
- Programy są zbudowane z definicji obiektów (klasy).
Obiekty łączą w sobie dane (atrybuty) i funkcje (metody),
ponadto większość obliczeń wyrażona jest w postaci operacji na obiektach.
- Każda definicja obiektu odpowiada obiektowi lub koncepcji
w świecie rzeczywistym; funkcje działające na obiektach odpowiadają
sposobowi działania obiektów w świecie rzeczywistym.
Python ma cechy, które wspierają programowanie orientowane obiektowo.
Nie są one konieczne do programowania, ale je ułatwiają.
Nowe typy obiektów w Pythonie tworzone są za pomocą klas.
Klasy obsługują dziedziczenie, czyli mechanizm dostosowywania
kodu oraz jego ponownego wykorzystania.
Klasy udostępniają specjalne metody protokołów, które pozwalają
odpowiadać obiektom na różne rodzaje operacji, tak jak to
robią obiekty typów wbudowanych (przeciążanie operatorów
lub polimorfizm).
Wreszcie klasy pozwalają grupować wiele komponentów działających
razem w jeden zespół (kompozycja).
Programowanie zorientowane obiektowo jest nie tylko technologią,
ale i pewnym doświadczeniem.
Podsumowanie koncepcji związanych z programowaniem zorientowanym
obiektowo:
- Dziedziczenie - zwykle używane w celu ponownego użycia kodu,
w Pythonie oparte na wyszukiwaniu atrybutów.
- Polimorfizm - znaczenie metody (operacji) uzależnione jest
od typu (klasy) obiektu, na którym się tą operację wykonuje.
- Hermetyzacja (enkapsulacja) - ukrywanie szczegółów implementacyjnych
za interfejsem obiektu. Można modyfikować implementację interfejsu
bez wpływania na użytkowników tego obiektu.
- Kompozycja - osadzanie innych obiektów w obiekcie pojemnika.
- Wzorce projektowe (ang. design patterns) - często wykorzystywane
struktury programowania zorientowanego obiektowo.
Wzorce dzieli się na trzy rodziny: kreacyjne, strukturalne i czynnościowe.