1. 程式人生 > 實用技巧 >不一樣的組合模式(設計模式十六)

不一樣的組合模式(設計模式十六)

前言

組合模式(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();
}

後續

模型圖,補。