I have added three more design patterns to my C# Design Patterns Cheat Sheet: The Adapter Pattern, Facade Pattern and Template Method Pattern.
It is interesting to see how similar the Adapter Pattern and Facade Pattern are to the Decorator Pattern. Head First Design Patterns does a great job of distilling the differences down to their intention:
- The Decorator Pattern's intention is not to alter the interface, but to add addition responsibility or functionality to an object.
- The Adapter Pattern's intention is to wrap an object provide the target interface the client is looking for, e.g., convert one interface to another.
- The Facade Pattern's intention is to provide a simplified interface for a set of interfaces, e.g., make an interface simpler.