| Decorator |
|
In the Implementation section of the Decorator Pattern, the authors write: A decorator
object's interface must conform to the interface of the component it decorates.
Now consider an object A, that is decorated with an object B. Since object B "decorates" object A, object B shares an interface with object A. If some client is then passed an instance of this decorated object, and that method attempts to call a method in B that is not part of A's interface, does this mean that the object is no longer a Decorator, in the strict sense of the pattern? Furthermore, why is it important that a decorator object's interface conforms to the interface of the component. it decorates? |
| Composite |
|
Part 1: How does the Composite pattern help to consolidate system-wide conditional logic?
Part 2: Would you use the composite pattern if you did not have a part-whole hierarchy? In other words, if only a few objects have children and almost everything else in your collection is a leaf (a leaf that has no children), would you still use the composite pattern to model these objects? |