Skip to content

ormikopo1988/design-patterns-csharp-dotnet

Repository files navigation

1) Creational Design Patterns

- In plain words

	Creational patterns are focused towards how to instantiate an object or group of related objects.

- Wikipedia says

	In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, 
	trying to create objects in a manner suitable to the situation. 
	The basic form of object creation could result in design problems or added complexity to the design. 
	Creational design patterns solve this problem by somehow controlling this object creation.

-> Simple Factory
-> Factory Method
-> Abstract Factory
-> Builder
-> Prototype
-> Singleton

2) Structural Design Patterns

- In plain words

	Structural patterns are mostly concerned with object composition or in other words how the entities can use each other. 
	Or yet another explanation would be, they help in answering "How to build a software component?"

- Wikipedia says

	In software engineering, structural design patterns are design patterns that ease the design by identifying 
	a simple way to realize relationships between entities.

-> Adapter
-> Bridge
-> Composite
-> Decorator
-> Facade
-> Flyweight
-> Proxy

3) Behavioral Design Patterns

- In plain words

	It is concerned with assignment of responsibilities between the objects. 
	What makes them different from structural patterns is they don't just specify the structure 
	but also outline the patterns for message passing / communication between them. 
	Or in other words, they assist in answering "How to run a behavior in software component?"

- Wikipedia says

	In software engineering, behavioral design patterns are design patterns that identify common communication patterns 
	between objects and realize these patterns. 
	By doing so, these patterns increase flexibility in carrying out this communication.

-> Chain of Responsibility
-> Command
-> Iterator
-> Mediator
-> Memento
-> Observer
-> Visitor
-> Strategy
-> State
-> Template Method

About

Design Patterns in C# and .NET

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages