To jest krótki artykuł na temat wzorców projektowych w Javie. Nie będzie implementacji wzorców, jest jedynie lista wzorców istniejących w Javie i ich krótka treść. Przyda się tym, którzy są już w temacie do powtórzeń i uogólnień. Albo wręcz przeciwnie, dla tych, którzy po raz pierwszy zetknęli się z wzorami – dla pierwszego oglądnięcia tematu, przed zagłębieniem się w temat. Wzorce projektowe (szablony projektowe) to gotowe rozwiązania często spotykanych problemów programistycznych. To nie jest klasa czy biblioteka, którą można podłączyć do projektu, to coś więcej. W każdym konkretnym przypadku wdrażane są odpowiednie do zadania wzorce projektowe. Należy pamiętać, że taki wzór, jeśli zostanie zastosowany nieprawidłowo lub do niewłaściwego problemu, może sprawić wiele problemów. Jednak prawidłowo zastosowany wzór pomoże łatwo i prosto rozwiązać problem. Typy wzorów :
- generowanie
- strukturalny
- behawioralne
- Singleton - ogranicza utworzenie jednej instancji klasy i zapewnia dostęp do jej jedynego obiektu.
- Factory — używane, gdy mamy superklasę z wieloma podklasami i na podstawie danych wejściowych musimy zwrócić jedną z podklas.
- Fabryka abstrakcyjna - użyj super fabryki, aby stworzyć fabrykę, a następnie użyj utworzonej fabryki do tworzenia obiektów.
- Konstruktor - służy do tworzenia złożonego obiektu przy użyciu prostych obiektów. Stopniowo tworzy większy obiekt z małego i prostego obiektu.
- Prototyp - pomaga utworzyć duplikat obiektu o lepszej wydajności, zamiast nowego tworzony jest zwrócony klon istniejącego obiektu.
- Adapter to konwerter pomiędzy dwoma niekompatybilnymi obiektami. Korzystając ze wzorca adaptera, możemy połączyć dwa niekompatybilne interfejsy.
- Composite — używa jednej klasy do reprezentowania struktury drzewa.
- Proxy — reprezentuje funkcjonalność innej klasy.
- Flyweight – zamiast tworzyć dużą liczbę podobnych obiektów, obiekty są ponownie wykorzystywane.
- Fasada - zapewnia prosty interfejs dla klienta, a klient używa interfejsu do interakcji z systemem.
- Bridge - uniezależnia konkretne klasy od klas implementacji interfejsu.
- Dekorator - Dodaje nową funkcjonalność do istniejącego obiektu bez ingerencji w jego strukturę.
- Metoda szablonowa - definiuje podstawę algorytmu i pozwala następcom na przedefiniowanie niektórych kroków algorytmu bez zmiany jego struktury jako całości.
- Mediator — udostępnia klasę mediatora, która obsługuje całą komunikację pomiędzy różnymi klasami.
- Łańcuch odpowiedzialności – pozwala uniknąć ścisłej zależności nadawcy żądania od jego odbiorcy, podczas gdy żądanie może być przetwarzane przez kilka obiektów.
- Obserwator - pozwala niektórym obiektom monitorować i reagować na zdarzenia zachodzące w innych obiektach.
- Strategia - Algorytm strategii można zmienić w trakcie wykonywania programu.
- Polecenie — interfejs poleceń deklaruje metodę wykonania określonej akcji.
- Stan — obiekt może zmieniać swoje zachowanie w zależności od swojego stanu.
- Gość - służy do uproszczenia operacji na grupach powiązanych obiektów.
- Interpreter — definiuje prostą gramatykę języka dla domeny problemowej.
- Iterator — sekwencyjnie uzyskuje dostęp do elementów obiektu kolekcji, nie znając jego podstawowej reprezentacji.
- Memento (Keeper) - służy do przechowywania stanu obiektu, stan ten można później przywrócić.
GO TO FULL VERSION