My Favorite Implementation of Popular Design Patterns using GoLang
- Singleton
- Factory Method
- Abstract Factory
- Builder
- Prototype
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Adapter
- Abstract Factory
- Acyclic Visitor
- Aggregator
- Bridge
- Builder
- Chain of Responsibility
- Command
- Composite
- Decorator
- Double Dispatch
- Event Aggregator
- Event-based Asynchronous
- Extension Interface
- Facade
- Factory Method
- Fluent Interface
- Flyweight
- Front Controller
- Function Object
- Intercepting Filter
- Interpreter
- Iterator
- Mediator
- Memento
- Method Chaining
- Module
- Null Object
- Object Pool
- Observer
- Pipe and Filter
- Private Class Data
- Proxy
- Publish-Subscribe
- Prototype
- Provider
- Quantifier
- Queued Message Handler
- RAII
- Reactor
- Registry
- Remote Proxy
- Resource Acquisition Is Initialization
- Role Object
- Singleton
- Specification
- State
- Strategy
- Subclass Sandbox
- Template Method
- Thread-safe Interface
- Thread-specific Storage
- ThreadPool
- Type Object
- Virtual constructor
- Visitor
- Active Object
- Audit Trail
- Balking
- Binding Properties
- Bytecode
- Callback
- Caching
- Capability
- Chain of Command
- Chaining Method Calls
- Command Processor
- Concurrency
- Context Object
- Data Access Object
- Data Transfer Object
- Delegation
- Dependency Injection
- Dirty Flag
- Disposable
- Domain Model
- Double-checked Locking
- Eager Initialization
- Event Sourcing
- Exception Safety
- Factory Kit
- Fluent Interface
- Function Composition
- Gossip
- Half-Object + Protocol
- Hidden implementation
- Immutable
- Initialization on Demand Holder
- Layered Architecture
- Lazy Initialization
- Marker Interface
- Messaging
- Model-View-Controller
- Model-View-Presenter
- Naked Object
- Node
- Observable
- Page Object
- Parallel Processor
- Parametrized Typing