DesignPatterns
Design Patterns in .Net Core context using C#
Creational Patterns
- Factory Method (Creates an instance of several derived classes)
- Abstract Factory (Creates an instance of several families of classes)
- Builder (Separates object construction from its representation)
- Prototype (A fully initialized instance to be copied or cloned)
- Object Pool (Creates an instance of several families of classes)
- Singleton (A class of which only a single instance can exist)
Structural Patterns
- Adapter (Match interfaces of different classes)
- Bridge (Separates an object's interface from its implementation)
- Composite (A tree structure of simple and composite objects)
- Decorator (Add responsibilities to objects dynamically)
- Facade (A single class that represents an entire subsystem)
- Flyweight (A fine-grained instance used for efficient sharing)
- Private Class Data (Restricts accessor/mutator access)
- Proxy (An object representing another object)
Behavioral Patterns
- Chain of responsibility (A way of passing a request between a chain of objects)
- Command (Encapsulate a command request as an object)
- Interpreter (A way to include language elements in a program)
- Iterator (Sequentially access the elements of a collection)
- Mediator (Defines simplified communication between classes)
- Memento (Capture and restore an object's internal state)
- Observer (A way of notifying change to a number of classes)
- Null Object (Designed to act as a default value of an object)
- State (Alter an object's behavior when its state changes)
- Strategy (Encapsulates an algorithm inside a class)
- Template Method (Defer the exact steps of an algorithm to a subclass)
- Visitor (Defines a new operation to a class without change)