Laboratorium 8: OOP.
Programowanie obiektowe (ang. Object-Oriented Programming) to paradygmat programowania, który opiera się na koncepcji obiektów. Obiekty są instancjami klas, które definiują ich właściwości i zachowanie. Programowanie obiektowe umożliwia tworzenie bardziej złożonych i elastycznych aplikacji poprzez organizację kodu w moduły.
Programowanie obiektowe opiera się na kilku kluczowych paradygmatach:
setter() jest odpowiedzialny za zmianę "wnętrza" obiektu. Jeśli zaimplementujesz go niedbale, może narobić bałaganu. Weryfikuj, czy podajesz sensowne dane, pilnuj, aby wszystko w obiekcie do siebie pasowało po zmianie. Możesz łatwo "zepsuć" swój obiekt i wprowadzić go w zły stan.
Prosty przykład: Wyobraź sobie setter set_age(). Jeśli pozwala ci wpisać -5 lat, to coś jest nie tak z Twoim obiektem user. Masz okazję poprawić implementację klasy.
Porady dotyczące tworzenia metod ustawiających.
getter() jest odpowiedzialny za bezpieczny odczyt danych z "wnętrza" obiektu. Jeśli zaimplementujesz go niedbale, możesz ujawnić zbyt wiele. Getter powinien być prosty, ale przemyślany – upewnij się, że zwraca dane w odpowiedniej formie i nie zdradza więcej, niż powinien.
Klasa Transfer posiada niebezpieczny getter(). Zobacz, jak łatwo można naruszyć integralność kluczowej operacji finansowej z zewnątrz. Obiekt, reprezentujący gotówkę klienta, jest uszkodzony. Napraw go stosując kopię defensywną.
Pobierz aplikację flask-figure-app, skopiuj ją do katalogu źródłowego src i uruchom moduł app.py.
Aplikacja jest prostą aplikacją webową, która pozwala na zmianę kolorów figur geometrycznych. Używa Flask do obsługi żądań HTTP i renderowania szablonu HTML.
Wykonaj refaktoryzację kodu i spełnij wymagania:
Wiem, że nic nie wiem
~Sokrates