CodeGym /Blog Java /Random-PL /Wzorce projektowe w Javie [Część 1]
Autor
Edward Izraitel
Software Engineer at Champions Oncology

Wzorce projektowe w Javie [Część 1]

Opublikowano w grupie Random-PL
To jest krótki artykuł o wzorcach projektowych w Javie. Nie będzie żadnych implementacji wzorców, tylko lista wzorców w Javie wraz z krótkim opisem każdego z nich. Dla osób już zaznajomionych z tematem będzie to pomocne jako przegląd i podsumowanie. I odwrotnie, ci, którzy uczą się wzorców po raz pierwszy, skorzystają z tego jako wstępnego przeglądu tematu przed zagłębieniem się. Wzorce projektowe w Javie [Część 1] - 1 Wzorce projektowesą gotowymi rozwiązaniami do często występujących zadań programistycznych. To nie jest klasa ani biblioteka, którą można połączyć z projektem. To coś więcej. Wzorce projektowe odpowiednie dla każdego zadania są wdrażane w każdym konkretnym przypadku. Należy pamiętać, że zastosowany nieprawidłowo lub do nieodpowiedniego zadania wzorzec projektowy może spowodować wiele problemów. Jednak właściwie zastosowany wzór może pomóc w łatwym i prostym wykonywaniu zadań.

Rodzaje wzorów:

  • kreacyjny
  • strukturalny
  • behawioralny
Wzorce kreacyjne zapewniają mechanizmy inicjalizacji, umożliwiające tworzenie obiektów w wygodny sposób. Wzorce strukturalne definiują relacje między klasami i obiektami, umożliwiając im współpracę. Wzorce behawioralne służą do uproszczenia interakcji między jednostkami.

Twórczy:

  • Singleton — ogranicza tworzenie klasy do pojedynczej instancji i zapewnia dostęp do tej pojedynczej instancji.

  • Fabryczna — używana, gdy mamy nadklasę z wieloma podklasami i musimy zwrócić podklasę na podstawie danych wejściowych.

  • Fabryka abstrakcyjna — wykorzystuje super fabrykę do tworzenia fabryk, których następnie używamy do tworzenia obiektów.

  • Konstruktor — służy do tworzenia złożonych obiektów przy użyciu prostych obiektów. Stopniowo tworzy duży obiekt z małego, prostego obiektu.

  • Prototyp — pomaga poprawić wydajność podczas tworzenia duplikatów obiektów; zamiast tworzyć nowy obiekt, tworzy i zwraca klon istniejącego obiektu.

Strukturalny:

  • Adapter — konwerter między dwoma niekompatybilnymi obiektami. Możemy użyć wzorca adaptera do połączenia dwóch niekompatybilnych interfejsów.

  • Composite — używa jednej klasy do reprezentowania struktury drzewa.

  • Proxy — zapewnia funkcjonalność innej klasy.

  • Flyweight — ponownie wykorzystuje obiekty zamiast tworzyć dużą liczbę podobnych obiektów.

  • Fasada — zapewnia prosty interfejs dla klienta, który używa interfejsu do interakcji z systemem.

  • Bridge — uniezależnia określone klasy od klas implementujących interfejs.

  • Dekorator — dodaje nową funkcjonalność do istniejącego obiektu bez wiązania się z jego strukturą.

behawioralny:

  • Metoda szablonowa — definiuje podstawowy algorytm i umożliwia potomkom zastąpienie niektórych kroków algorytmu bez zmiany jego ogólnej struktury.

  • Mediator — zapewnia klasę pośredniczącą, która obsługuje całą komunikację między różnymi klasami.

  • Łańcuch odpowiedzialności — pozwala uniknąć ścisłej zależności między nadawcą a odbiorcą zapytania; ponadto żądanie może być przetwarzane przez kilka obiektów.

  • Obserwator — umożliwia jednemu obiektowi monitorowanie i reagowanie na zdarzenia zachodzące w innych obiektach.

  • Strategia — umożliwia zmianę strategii (algorytmów) w czasie wykonywania.

  • Polecenie — interfejs, który deklaruje metodę wykonania określonej akcji.

  • Stan — umożliwia obiektowi zmianę zachowania w zależności od jego stanu.

  • Gość — służy do uproszczenia operacji na grupach powiązanych obiektów.

  • Interpreter — definiuje gramatykę prostego języka w dziedzinie problemowej.

  • Iterator — sekwencyjnie uzyskuje dostęp do elementów kolekcji, nie znając ich podstawowej formy.

  • Memento — służy do przechowywania stanu obiektu; stan ten można później przywrócić.

Przechodząc przez kurs CodeGym, natkniesz się na kilka wzorców na tej liście. Polecam następujące zadania dotyczące wzorców: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... Mądre użycie wzorców projektowych prowadzi do bardziej niezawodnego utrzymania kodu, ponieważ oprócz tego, że wzorce projektowe są dobrymi rozwiązaniami typowych problemów , inni programiści mogą je rozpoznać, skracając czas potrzebny do pracy z określonym kodem.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION