那么到底什么建造者设计模式呢,当然设计模式其实就是代码一种组织方式。
那么我们的造人代码为什么需要这种代码组织结构呢,如果不用会发生什么,用了又会怎么样。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 建造者设计模式__造小人
{
//造人的一些固定接口
abstract class PersonBuilder
{
public PersonBuilder() { }
//造小人的头
public abstract void BuildHead();
//造身体
public abstract void BuildBody();
//造手
public abstract void BuildLeg();
}
//造瘦子人
class PersonThinBuilder : PersonBuilder
{
public override void BuildBody()
{
Console.WriteLine("小身体");
}
public override void BuildHead()
{
Console.WriteLine("小头");
}
public override void BuildLeg()
{
Console.WriteLine("小腿");
}
}
//指挥者,负责指挥如何造人
class PersonDirector
{
private PersonBuilder pb;
public PersonDirector(PersonBuilder pb)
{
this.pb = pb;
}
public void CreatePerson()
{
pb.BuildBody();
pb.BuildHead();
pb.BuildLeg();
}
}
class Program
{
static void Main(string[] args)
{
PersonThinBuilder p = new PersonThinBuilder();
PersonDirector director = new PersonDirector(p);
director.CreatePerson();
}
}
}
其实我们可以看得出,建造者设计模式只是把一些接口给你固定死,并且客户端不需要关注执行了什么
可以看出我们就是对指挥者发了造人的通知,这个指挥者会自动调造瘦子的全部方法,并且不会出现少了方法,因为我们在接口就已经规范好了。其实建造者设计模式就是把一些接口给固定下来,我们客户端是不需要关注的,