These design patterns are all about Class and Object composition. It explains how to assemble classes and objects into larger structures while keeping them flexible and efficient.
- It uses inheritance to compose interfaces
- It defines ways to compose objects to obtain new functionality