8

任何人都可以解释并给出复合设计模式的真实例子吗?

4

1 回答 1

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();
        }
    }
}

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

于 2011-01-30T13:23:50.337 回答