什么是'复合模式'?

时间:2011-01-30 13:12:13

标签: oop design-patterns composite object-oriented-analysis

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

1 个答案:

答案 0 :(得分: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();
        }
    }
}

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