Composite
Category: Design Pattern
Description
Each tree node stores a collection of its children and its parent; the client is allowed to modify any intermediate node. A value in each node should be the maximum of all children's values; to maintain the invariant after a modification a node notifies its parent.