什么是'复合模式'?

Ker*_*ter 8 oop design-patterns composite object-oriented-analysis

有人可以解释一下复合设计模式的真实例子吗?

And*_*del 5

当应该以与同一类型的一个对象相同的方式处理对象集合时,可以使用复合模式.这通常与树结构数据一起使用.以下是此模式适合的示例:

public abstract class Shape {
    public abstract void Draw();
}

public class Line : Shape {
    public override void Draw() {
        // Draw line
    }
}

public class Polygon : Shape {

    private IList<Line> lines;

    public override void Draw() {
        foreach (Shape line in lines) {
            line.Draw();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,该模式使得处理绘图形状的代码可能不知道绘制了多少行.