• 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