The Proxy design pattern, gives you more control over how you use the original object with a stand-in object.
Use the flyweight design pattern to go easy on the system memory.
The facade design pattern is a structural pattern that provides a simpler interface to a complex subsystem.
The decorator pattern lets you extend the functionality of a class without object inheritance.
Use the Composite object oriented design pattern to solve problems that require building a tree structure.
The bridge design pattern is a structural pattern that decouples abstraction from implementation, allowing them to vary independently.
The adapter design pattern can make two interfaces compatible with each other.