建造者模式

学习开发模式的最大好处是,当你做什么事情时,知道是否合理,是否高效,就像构建房子时,你该用斧头的时候你不会去用刀,同时在学习底层源码时,能够快速的定位代码,理清头绪,今天要讲的是构造者模式:

  该模式之间的对象关系我们可以举现实生活中的例子,比如,客户去买电脑,老板需要员工把组装好的电脑给客户,  这其中对应软件开发的角色就是  老板是指挥者,员工是创建者(创建电脑的),我们来看例子

电脑实体: 

public class Computer
{
  private IList<string> parts = new List<string>();

  public void Add(string part)
  {
  parts.Add(part);
  }

  public void Show()
  {
  Console.WriteLine("电脑开始组装");
  foreach (string part in parts)
  {
  Console.WriteLine("组件" + part + "已装好");
  }
  Console.WriteLine("电脑组装好了");
  }
}

指挥者:

public class Director
{
public void Constructor(Builder builder)
{
builder.BuildPartCPU();
builder.BuildPartMainBoard();
}
}

构建抽象:

public abstract class Builder
{
public abstract void BuildPartCPU();

public abstract void BuildPartMainBoard();

public abstract Computer GetComputer();
}

具体构建者(员工):

public class ConcreteBuilder : Builder
{
  Computer computer = new Computer();

  public override void BuildPartCPU()
  {
    computer.Add("CPU");
  }

  public override void BuildPartMainBoard()
  {
    computer.Add("MainBoard");
  }

  public override Computer GetComputer()
  {
    return computer;
  }
}

使用情况:

// 指挥者

Director director = new Director();

//构建者

Builder builder = new ConcreteBuilder();

//指挥构建者做事情,也就是使用构建者
director.Constructor(builder);

//构建者给客户展示他需要的  也就是电脑实体

Computer computer = builder.GetComputer();
computer.Show();

posted on 2019-03-19 15:46  1老王  阅读(93)  评论(0编辑  收藏  举报