2011-01-30 81 views

回答

4

当对象集合应该以与同一类型的一个对象相同的方式处理时,可以使用组合模式。这通常用于树状结构数据。下面就是该模式适合很好的例子:

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

正如你所看到的,该模式能够用于处理绘制形状的代码是不知道什么形状是要绘制。