Composite Pattern structures components into a tree structure and treat each node and leaf uniformly.
Employee
is an interface implemented by Engineer
and Manager
. Manager
has multiple direct reports where each report is an Employee
- a Engineer
or another Manager
. So, we build a tree structure here - Manager
is a node
(or a leaf if he/she doesn't have any direct report), and Engineer
is a leaf.