Repozytorium zawiera rozwiązania zadań laboratoryjnych dotyczących projektowania obiektowego, wzorców projektowych, testów jednostkowych i refaktoryzacji kodu. Każde zadanie skupia się na praktycznym zastosowaniu kluczowych technik w programowaniu obiektowym.
📄 Opis plików i zagadnień
7️⃣ Projektowanie Obiektowe – Wzorce Strukturalne i Behawioralne
Zadania dotyczą implementacji wzorców projektowych:
Adapter – Przystosowanie niekompatybilnych interfejsów.
Dekorator – Dynamiczne rozszerzanie funkcjonalności obiektów.
Command – Wzorzec umożliwiający obsługę operacji "Undo".
6️⃣ Zaawansowane Wzorce Projektowe
Rozwiązania obejmują zastosowanie:
Strategia – Elastyczna kalkulacja rabatów.
Singleton – Zarządzanie konfiguracją aplikacji.
Fasada – Upraszczanie interakcji z systemem.
Adapter – Integracja z zewnętrznym API rabatów.
Template Method – Abstrakcyjne podejście do drukowania faktur.
Composite – Hierarchiczna struktura kategorii towarów.
5️⃣ Podstawowe Wzorce Konstrukcyjne
Zadania z konstrukcyjnych wzorców projektowych:
Builder – Tworzenie labiryntu w grze.
Fabryka Abstrakcyjna – Tworzenie różnych typów labiryntów.
Singleton – Fabryka jako pojedyncza instancja w systemie.
Rozszerzenie aplikacji – Dodanie mechanizmu poruszania się po labiryncie.
4️⃣ Testy jednostkowe (TDD, BDD)
Ćwiczenia z testowania oprogramowania:
Tworzenie testów w JUnit5 i Mockito.
Pisanie kodu zgodnie z TDD (Test-Driven Development).
Obsługa podatków, rabatów i historii zamówień.
Weryfikacja poprawności za pomocą testów jednostkowych.
3️⃣ Refaktoryzacja i poprawa kodu
Praktyczne ćwiczenia z refaktoryzacji:
Poprawa czytelności kodu i struktury klas.
Wykorzystanie wzorców Iterator, Decorator, Composite.
Generalizacja i ujednolicenie klasy Person i Prisoner.
Implementacja elastycznych warunków wyszukiwania.
2️⃣ Rozbudowa istniejącej aplikacji – Sklep internetowy
Zmiany w aplikacji zakupowej:
Rozszerzenie panelu filtracji produktów.
Obsługa nowych właściwości dla różnych kategorii.
Implementacja GUI w Java Swing.
1️⃣ Modelowanie Obiektowe – Karty CRC i UML
Ćwiczenia z modelowania:
Stworzenie modułu walki RPG w oparciu o diagram UML.
Implementacja systemu walki opartego na broni, magii i losowości.
Projektowanie klas postaci i ich interakcji.