Design Pattern In C#:
Zajmują się komunikacją pomiędzy obiektami. Głównie występują w algorytmach i w skomplikowanych systemach odpowiedzialności pomiędzy obiektami.
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
- Chain of Responsibility
Umożliwiać przekazywanie żądania na coraz wyższe poziomy aż do znalezienia obiektu, który je obsłuży
- Command
Hermetyzacja wywołania metody w obiekcie
- Interpreter
Dystrybuować operacje w taki sposób, że każda implementacja odnosi się do innego typu kompozycji
- Iterator
Udostępniać sekwencyjnego sposobu dostępu do elementów kolekcji
- Mediator
Skupić odpowiedzialność w jednej klasie, nadzorującej interakcję innych obiektów
- Memento
Zrekonstruować obiekt na podstawie starszej jego wersji, zawierającej wyłącznie stan wewnętrzny
- Observer
Oddzielić obiekt od znajomości obiektów od niego zależnych
- State
Dystrybuować operacje w taki sposób, że każda klasa reprezentuje różny stan
- Strategy
Hermetyzować operacje, powodując stworzenie zmiennych implementacji
- Template Method
Zaimplementować (w postaci metody) kilka kroków wykonania algorytmu, aby klasy podrzędne mogły je ponownie zdefiniować.
- Visitor
Umożliwienie zdefiniowanie nowej operacji dla hierarchii bez konieczności zmiany klas zawartych w tej hierarchi
- Command
- Interpreter
- State
- Strategy
- Template Method
- Iterator
- Visitor
- Chain of Responsibility
- Mediator
- Observer
- Memento
Chain of Responsibility:
Command:
Interpreter:
Iterator:
Mediator:
Memento:
Observer:
State:
Strategy:
Template Method:
Visitor:
Zajmują się związkami pomiędzy obiektami i tym jaka powinna być interakcja między nimi. Wszystko w celu ułożenia złożonego obiektu.
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Adapter
Zadaptować istniejący interfejs klasy do postaci oczekiwanej przez klienta
- Bridge
Oddzielić operacje abstrakcyjne od ich implementacji w celu wprowadzania w nich niezależnych zmian.
- Composite
Zdefiniować interfejs uwzględniający zarówno pojedyńcze obiekty, jak i grupy obiektów
- Decorator
Umożliwienie programistom dynamicznego tworzenia zachowania
- Facade
Stworzyć prosty interfejs dla zestawu klas
- Flyweight
Skupić odpowiedzialność w drobnych, współużytkowanych obiektach
- Proxy
Pozwolić obiektowi działać w imieniu innego obiektu
- Proxy
- Flyweight
- Adapter
- Bridge
- Composite
- Facade
- Decorator
Adapter:
Bridge:
Composite:
Decorator:
Facade:
Flyweight:
Proxy:
Zajmują się konstrukcją obiektów i ich referencjami
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
- Abstract Factory
Stworzyć rodzinę obiektów posiadających określoną cechę wspólną.
- Builder
Stopniowo zbierać informacje o obiekcie przed przystąpieniem do jego konstrukcji.
- Factory Method
Zwolnić klienta z obowiązku "znajomości" konkretnej klasy, której instancja ma być stworzona.
- Prototype
Stworzyć obiekt na podstawie obiektu przykładowego
- Singleton
Skupić całą odpowiedzialność w jednej instancji klasy
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
Abstract Factory :
Builder:
Factory Method:
Prototype:
Singleton: