组合模式(Composite)将对象组织成树状结构,以表示整体-部分的层次结构.使单个对象和组合对象的操作具有一致性.例如:
public interface IComposite
{
int Id { get; set; }
string Name { get; set; }
void Add(IComposite source);
} // interface IComposite
public class Composite : IComposite
{
private IList<IComposite> m_Items;
public int Id { get; set; }
public string Name { get; set; }
public Composite()
{
m_Items = new List<IComposite>();
}
public void Add(IComposite source)
{
m_Items.Add(source);
}
} // class Composite
可以通过创建Composite实例,然后给此实例添加Composite元素,也可以将此实例添加到其它的Composite实例中.如此就实现了对象的树状层级结构.对其中任意元素的操作都保持了高度的一致性.