Design Patterns#
Solid Principles#
Principle |
|
---|---|
Single responsibility |
A class should have one and only one reason to change, meaning that a class should have only one job. |
Open/closed |
Objects or entities should be open for extension but closed for modification. |
Liskov substitution |
Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T. |
Interface seggregation |
A client should never be forced to implement an interface that it doesn’t use, or clients shouldn’t be forced to depend on methods they do not use. |
Dependency inversion |
Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions. |
Creational#
Pattern |
Description |
---|---|
Builder |
|
Factory |
|
Singleton |
Behavioral#
Pattern |
Description |
---|---|
Template |
Structural#
Pattern |
Description |
---|---|
Adaptor |
Allows incompatible interfaces to work together, acting like a bridge between them |
Decorator |
|
Strategy |