A collection of design patterns for the Go language.
Name | Description | Status |
---|---|---|
Command Pattern | Encapsulate requests as objects. | ✔️ |
Observer Pattern | Extensible implementation of one-to-many relationships between objects. | ✔️ |
Template Method Pattern | Defer steps of algorithms to subclasses. | ✔️ |
Iterator Pattern | Abstract the iteration of objects. | ✔️ |
State Pattern | Allowing objects to alter behaviour when an internal state changes. | ✔️ |
Name | Description | Status |
---|---|---|
Decorator Pattern | Attach additional functionality to objects dynamically. | ✔️ |
Adapter Pattern | Give an object an interface that is compatible with a different system. | ✔️ |
Facade Pattern | Hide the complexities of a class behind a simple interface. | ✔️ |
Composite Pattern | Represent part-whole hierarchies through tree structures. | ✔️ |
Proxy Pattern | Control access to another object by providing a surrogate. | ✔️ |
Name | Description | Status |
---|---|---|
Factory Method Pattern | Let subclasses of a factory define what objects to create. | ✔️ |
Singleton Pattern | Ensure that there is only one instance of a class globally. | ✔️ |