【建造者模式】
看网上大多说建造者模式主要是把类创建和展示解耦,我的理解是建造者模式是另一种工厂模式,尤其是在把这个脚本敲完后,回顾一下之间整理的工厂模式:不同工厂建造不同机器,建造者模式呢?多了一层领导,去指挥不同的工厂(工人)建造不同的机器。。。。。。难不成我学的是有问题?求大佬指点。
public class DesignMode_BuildMode : MonoBehaviour {
// Use this for initialization
void Start () {
ComputerBuilder cb1 = new ComputerBuilder("小李");
Director dr1 = new Director(cb1);
dr1.Build();
}
}
/// <summary>
/// 电脑类
/// </summary>
public class Computer
{
public string CPU;
public string GPU;
public int RAM;
}
/// <summary>
/// 建造者抽象类
/// </summary>
public abstract class Builder
{
public Computer computer=new Computer();
public abstract void BuildCPU();
public abstract void BuildGPU();
public abstract void BuildRAM();
public abstract string GetComputer();
}
/// <summary>
/// 具体建造者类
/// </summary>
public class ComputerBuilder : Builder
{
public string name;
public override void BuildCPU()
{
computer.CPU = "I7";
}
public override void BuildGPU()
{
computer.GPU = "GTX1080TI";
}
public override void BuildRAM()
{
computer.RAM = 16;
}
public override string GetComputer()
{
return "配置了一台" + computer.CPU + computer.GPU + "内存" + computer.RAM + "G的电脑";
}
public ComputerBuilder(string name)
{
this.name = name;
}
}
/// <summary>
/// 指挥者类
/// </summary>
public class Director
{
public ComputerBuilder mBuilder;
public Director(ComputerBuilder builder)
{
mBuilder = builder;
}
public void Build()
{
mBuilder.BuildCPU();
mBuilder.BuildGPU();
mBuilder.BuildRAM();
Debug.Log(mBuilder.GetComputer());
}
}