Notatka z nauki: Wzorce projektowe w programowaniu | EduMarka

przez Karol Bocian | 27 listopada, 2020

W ramach rozwijania się oglądam i czytam różne materiały. Następnie wiedzę z nich umieszczam w Anki oraz w notatkach i uzupełniam własnymi przemyśleniami.

Notatka

Materiał: Wzorce projektowe w programowaniu | EduMarka opowiada  o wzorcach projektowych.

  • Wzorzec projektowy to uniwersalne i sprawdzone rozwiązanie powszechnego problemu.
  • Wzorzec projektowy składa się z:
    • Nazwy.
    • Opis problemu.
    • Rozwiązanie.
    • Konsekwencje rozwiązania.
  • Korzystaj z zasad
    • SOLID (zasad programowania).
      • Single responsibility principle – Zasada jednej odpowiedzialności – Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia.
      • Open/closed principle – Zasada otwarte-zamknięte – Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.
      • Liskov substitution principle – Zasada podstawienia Liskov – Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną.
      • Interface segregation principle – Zasada segregacji interfejsów – Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.
      • Dependency inversion principle – Zasada odwróconej zależności – Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji.
    • GRASP (zasad do programowania obiektowego).
  • Wzorce pogrupowane są na obszary:
    • Konstrukcyjne – pomagają tworzyć nowe obiekty.
      • Budowniczy – tworzy obiekt z mniejszych obiektów element po elemencie.
      • Fabryka – tworzy grupę obiektów mających wspólny interfejs.
      • Prototyp – tworzy obiekt na podstawie już istniejącego.
      • Singleton – zapewnia, że stworzony obiekt ma tylko jedną instancję w całym systemie.
    • Strukturalne – pomagają ustalać relacje między klasami.
      • Adapter – pozwala połączyć ze sobą niekompatybilne interfejsy.
      • Dekorator – zmienia zachowanie klasy bez potrzeby dziedziczenia po niej.
      • Fasada – eksponuje uporządkowany interfejs.
      • Kompozyt – organizuje obiekty w strukturę.
      • Most – oddziela abstrakcję od implementacji.
      • Pełnomocnik – zastąpieni innego obiektu.
      • Pyłek – pozwala zarządzać wieloma identycznymi obiektami.
    • Czynnościowe – pomagają zarządzać zachowaniami i odpowiedzialnościami między obiektami.
      • Łańcuch zobowiązań/odpowiedzialności – tworzy listę obiektów realizujących żądanie klienta poprzez wykonywanie kolejnych działań ze zdefiniowanego łańcucha.
      • Polecenie – pozwala traktować żądanie klienta jako obiekt.
      • Interpreter – pozwala zdefiniować opis gramatyki innego języka.
      • Iterator – zapewnia dostęp do zbioru obiektów.
      • Mediator – zapewnia jeden interfejs dla wielu obiektów.
      • Pamiątka/Memento – pozwala zapamiętanie stanu obiektu.
      • Obserwator – informuje obiekty o zmianie obserwowanego obiektu.
      • Stan – zmienia zachowanie obiektu przez zmianę jego stanu.
      • Strategia – ukrawy implementację różnych algorytmów.
      • Odwiedzający/Wizytator – oddziela algorytm działania od struktury danych, na których działa.

Wszystkie posty związane z notatkami z nauki:

Źródła

Obraz główny

Materiał

Kategoria: Notatki z nauki

O Karol Bocian

Programowanie i świat agentów programowalnych, który poznał na Wydziale Matematyki i Nauk Informacyjnych, wciągnął go w przemysł IT. W trakcie swojej praktyki zawodowej Karol zrozumiał, że nie ważne co się robi i kim się jest, ale wiedza z zarządzania przydaje się wszędzie. Rozpoczął studia na kierunku Zarządzanie i Inżyniera Produkcji. W przypadku Karola zarządzanie to nie tylko teoria czy praca, ale prawie każdy element jego życia, to jego pasja.