| Pattern | Description | Status |
|---|---|---|
| Factory Method | Defers instantiation of an object to a specialized function for creating instances | ✔ |
| Abstract Factory | Provides an interface for creating families of releated objects | ✔ |
| Builder | Builds a complex object using simple objects | ✔ |
| Singleton | Restricts instantiation of a type to one object | ✔ |
| Pattern | Description | Status |
|---|---|---|
| Strategy | Enables an algorithm's behavior to be selected at runtime | ✔ |
| State | Encapsulates varying behavior for the same object based on its internal state | ✔ |
| Command | Converts requests or simple operations into objects. | ✔ |
| Iterator | Lets you traverse elements of a collection without exposing its underlying representation | ✔ |
| Observer | Allows one objects to notify other objects about changes in their state. | ✔ |
| Chain of Responsibility | Avoids coupling a sender to receiver by giving more than object a chance to handle the request | ✔ |
| Pattern | Description | Status |
|---|---|---|
| Adapter | allows objects with incompatible interfaces to collaborate. | ✔ |
| Decorator | Adds behavior to an object, statically or dynamically | ✔ |
| Proxy | Provides a surrogate for an object to control it's actions | ✔ |
