Zmiana postrzegania¶
W poprzednich rozdziałach funkcje, które pisaliśmy i wywoływaliśmy poprzez polecenia typu drawCircle(tess)
.
Jej składnia sugeruje, że operacje przeprowadza funkcja sama w sobie. Można to przetłumaczyć na zdanie „Hej, narysuj okręg!
Tu masz obiekt turtle, którego użyj.”
W programowaniu zorientowanym obiektowo, to same obiekty są uważane jako źródło wykonywanej operacji.
We wstępie do modułu turtles, użyliśmy metody obiektowej np. funkcji tess.forward(100)
,która to wykonuje przesunięcie w przód o określoną ilość kroków.
Wywołanie tess.circle()
można przetłumaczyć jako „Hej tess!
Użyj swojej metody do rysowania okręgu!”
Ta zmiana w zakresie postrzegania może być uważana jako bardziej „uprzejme” podejście do pisania instrukcji programu, jednakże korzyści z tego płynące nie są zauważalne od razu. Okazuje się, że przerzucenie odpowiedzialności wykonawczej z funkcji na obiekty, umożliwia pisanie bardziej uniwersalnego kodu, którym również łatwiej zarządzać, modyfikować i ponownie wykorzystywać.
Najważniejszą zaletą programowania obiektowego jest jego styl, który wpasowuje się w rozumowanie człowieka i jego
doświadczenia. W rzeczywistości metoda cook
stanowi funkcjonalność kuchenki mikrofalowej, a nie oddzielny byt, czekający na użycie w
kącie kuchni! Podobnie, aby wysłać sms lub zmienić tryb telefonu na milczący używamy do tego metod zaszytych w telefonie komórkowym.
W świecie rzeczywistym, funkcjonalność obiektów jest ściśle z nimi powiązana.
Programowanie OOP pozwala na odwzorowanie tej zależności w trakcie tworzenia programu.