Composite: Consequences (continued)
The Composite pattern allows any AbstractComponent to be a child of an AbstractComposite. If you need a more restrictive relationship then you will have to add type aware code to AbstractComposite or its subclasses. That reduces the value of the Composite pattern.