• Compose objects into tree structures to represent part-whole relationships
  • Allows for uniform treatment of single objects and a composition of objects
  • Ex: Filesystem ops for folders and file

Issues

  1. Explicit parent references
  2. Sharing components
  3. Maximizing the component interface
  4. Declaring the child management operations

The child management ops either has to be implemented in the composite class or the component class. It’s a trade off between transparency (more transparent in the component class) and safety (safer in composite class)