Skip to content

MarkoKacprzak/DesignPatternInCSharp

Repository files navigation

DesignPatternInCSharp

Design Pattern In C#:

1 Behavioral (Wzorce zachowania)

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

Wzorzec ma na celu:

  • 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

Wzorce zachowania można podzielić na grupy:

Wzorce operacji

  • Command
  • Interpreter
  • State
  • Strategy
  • Template Method

Wzorce rozszerzeń

  • Iterator
  • Visitor

Wzorce odpowiedzialności

  • Chain of Responsibility
  • Mediator
  • Observer

Wzorce konstrukcyjne

  • Memento

Diagramy:

Chain of Responsibility:

Command:

Interpreter:

Iterator:

Mediator:

Memento:

Observer:

State:

Strategy:

Template Method:

Visitor:

2 Structural (Wzorce strukturalne)

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

Wzorzec ma na celu:

  • 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

Wzorce strukturalne można podzielić na grupy:

Wzorce odpowiedzialności

  • Proxy
  • Flyweight

Wzorce interfejsów

  • Adapter
  • Bridge
  • Composite
  • Facade

Wzorce rozszerzeń

  • Decorator

Diagramy:

Adapter:

Bridge:

Composite:

Decorator:

Facade:

Flyweight:

Proxy:

3 Creational (Wzorce konstrukcyjne)

Zajmują się konstrukcją obiektów i ich referencjami

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

Wzorzec ma na celu:

  • 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

Wzorce konstrukcyjne można podzielić na grupy:

Wzorce konstrukcyjne

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype

Wzorce odpowiedzialności

  • Singleton

Diagramy:

Abstract Factory :

Builder:

Factory Method:

Prototype:

Singleton:

About

Design Pattern In C#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages