This is the git repository containing the files for a book I am writing. This book is all about making reusable elements of software design.
While I started to write this as an e-book, I now think the way to do this is write a blog post per design pattern and then compile them into a guide. These blog posts can be found here
These patterns will fit roughly into four categories:
- Creational
- Abstract factory
- Builder
- Factory method
- Lazy initialization
- Multiton
- Object pool
- Prototype
- Resource acquisition is initialization
- Singleton
- Structural
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Front Controller
- Module
- Proxy
- Telescoping constructor
- Behavioural
- Blackboard
- Chain of Responsibility
- Command
- Data Caching
- Interpreter
- Iterator
- Mediator
- Memento
- Null object
- Observer (Publish/Subscribe)
- State
- Servant
- Specification
- Strategy
- Template
- Visitor
- UI Patterns
- Model View Presenter
- Model View Controller
- Model View View-Model
- Model View Adapter
- Presentation Abstraction Control
Patterns in bold are non gang of four patterns.