Sobes.tech
Junior

Jakie wzorce projektowe znasz?

sobes.tech AI

Odpowiedź od AI

  • Twórcze

    • Metoda fabryczna (sposób tworzenia obiektów za pomocą metody fabrycznej, a nie bezpośrednio przez konstruktor)
    • Fabryka abstrakcyjna (interfejs do tworzenia powiązanych rodzin obiektów bez określania ich konkretnych klas)
    • Budowniczy (krokowe tworzenie złożonych obiektów, umożliwiające uzyskanie różnych wariantów obiektu, korzystając z tego samego kodu konstrukcyjnego)
    • Prototyp (tworzenie nowych obiektów przez kopiowanie istniejącego wzorca)
    • Singleton (gwarantuje, że istnieje tylko jedna instancja klasy i zapewnia do niej globalny punkt dostępu)
  • Strukturalne

    • Adapter (pozwala obiektom z niekompatybilnymi interfejsami współpracować)
    • Most (oddziela abstrakcję od implementacji, umożliwiając ich niezależne zmiany)
    • Kompozyt (traktuje pojedyncze obiekty i ich grupy w ten sam sposób)
    • Dekorator (dynamicznie dodaje nowe obowiązki obiektom)
    • Fasada (zapewnia zunifikowany interfejs do zestawu interfejsów podsystemu)
    • Flyweight (efektywnie zarządza dużą liczbą małych obiektów)
    • Proxy (zapewnia obiekt zastępczy, który kontroluje dostęp do innego obiektu)
  • Behawioralne

    • Łańcuch zobowiązań (przesyła żądania wzdłuż łańcucha obsługujących)
    • Polecenie (enkapsuluje żądanie jako obiekt, umożliwiając parametryzację klientów, kolejkowanie żądań, logowanie i obsługę cofania)
    • Iterator (zapewnia sposób sekwencyjnego dostępu do wszystkich elementów obiektu złożonego bez ujawniania jego wewnętrznej struktury)
    • Mediator (upraszcza interakcję między wieloma obiektami, wprowadzając obiekt mediatora)
    • Memento (pozwala zapisać i przywrócić stan wewnętrzny obiektu bez naruszania jego enkapsulacji)
    • Obserwator (definiuje zależność jeden-do-wielu między obiektami, tak że gdy jeden się zmienia, wszyscy zależni są powiadamiani i aktualizowani)
    • Stan (pozwala obiektowi zmienić swoje zachowanie, gdy jego wewnętrzny stan się zmienia)
    • Strategia (definiuje rodzinę algorytmów, kapsułkuje je i czyni wymienialnymi)
    • Metoda szablonowa (definiuje szkielet algorytmu w metodzie, pozostawiając podklasom możliwość redefinicji niektórych kroków bez zmiany struktury ogólnej)
    • Odwiedzający (pozwala dodawać nowe operacje do hierarchii klas bez ich modyfikowania)

W rozwoju Android często używa się wzorców MVx (MVP, MVVM), a także wzorców z biblioteki Android Architecture Components (Room, ViewModel, LiveData, Navigation).