建造者模式

学习开发模式能让人判断做事是否合理高效,还能助力底层源码学习。本文重点介绍构造者模式,通过客户买电脑的例子说明其对象关系,并给出电脑实体、指挥者、构建抽象、具体构建者的代码示例,以及使用情况的代码。

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

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

电脑实体: 

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

转载于:https://www.cnblogs.com/1laowang/p/10559135.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值