理解了半天,感觉有点区分不开来和工厂模式的区别
产品:人
namespace DesignPattern.设计模式._3.建造者模式
{
class Person
{
public string Head { get; set; }
public string Body { get; set; }
}
}
造人抽象类
namespace DesignPattern.设计模式._3.建造者模式
{
abstract class PersonBuilder
{
protected Person person { get; set; }
public abstract void AddHead();
public abstract void AddBody();
public Person CreatePerson()
{
return this.person;
}
}
}
导演者,负责造人命令
namespace DesignPattern.设计模式._3.建造者模式
{
class Directer
{
public Person construct(PersonBuilder personBuilder)
{
personBuilder.AddBody();
personBuilder.AddHead();
return personBuilder.CreatePerson();
}
}
}
具体的造人类,我的理解就是建造者模式抽象的是建造类,简单工厂模式抽象的是产品
namespace DesignPattern.设计模式._3.建造者模式
{
class StrongerBuilder : PersonBuilder
{
public override void AddBody()
{
this.person.Body = "壮如牛";
}
public override void AddHead()
{
this.person.Head = "一般";
}
}
}
namespace DesignPattern.设计模式._3.建造者模式
{
class SmarterBuilder : PersonBuilder
{
public override void AddBody()
{
this.person.Body = "一般";
}
public override void AddHead()
{
this.person.Head = "智商爆表";
}
}
}