不一样的组合模式(设计模式十八)
前言
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。
也就是搭积木,通过某种组合可以形成一种新结构,这种结构有着某种规律,这里特指树。
正文
比如说现在有一个需求,要知道某个领导的所有部下。
我们知道,公司的管理层一般来说是金字塔形状的。
那么实现这种需求,可以搭建一个这种模型。
interface ICommonFun
{
void sayName();
}
class Leader:ICommonFun{
List<ICommonFun> persons=new List<ICommonFun>();
string name;
public leader(string name)
{
this.name=name;
}
public void addEmployee()
{
person.add();
}
public void sayName()
{
console.write(name);
foreach(var item in persons)
{
item.sayName();
}
}
}
class Employ:ICommonFun{
string name;
public Employ(string name)
{
this.name=name;
}
}
void main()
{
Leader leader1=new leader("董事长");
Leader leader2=new leader("总经理");
Leader leader3=new leader("秘书");
leader1.add(leader2);
leader1.add(leader3);
Employ employ=new Employ("小兵");
leader2.add(employ);
leader1。sayName();
}
后续
模型图,补。