- Intent
- Only when the model of you app can be represented as a tree
- For composite objects that contain that may contain leafs or other composite it loops to get some internal methods such that it provides a unified interface for a tree-like structure
- Think of a file system where you ask at the root the size and u get it without having to write code tailored for directories or files
- Components
- Leaf ⇒ primitive
- Composite ⇒ collection of objects
- Component ⇒ base interface for primitives + composites
- Use cases
- Anything that can be represented as a tree
- Organizational charts
- File systems
- GUI