次のように設定されたコンポジットがあるとしましょう。
public abstract class Element {
//position, size, etc.
//element methods
//setters/getters
}
public class SimpleElement1 extends Element {
//...
}
public class SimpleElement2 extends Element {
//...
}
public class CompositeElement extends Element {
protected List<Element> childrenElements;
//methods to add/remove/get children
}
では、このCompositeをBuilderパターンにラップするにはどうすればよいでしょうか。これにより、子をCompositeにリンクする方法の複雑さを気にしない (またはあまり気にしない) ことで、クライアント コードを簡素化できます。