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.