建造者模式

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

 Builder 是为创建一个 Product 对象的各个部件指定的抽象接口。 指定了产品都有什么东西。

ConcreteBuilder 是具体的建造者,实现 Builder 接口,构造和装配各个部件。  各种产品的某个属性是什么样子的

Product 就是那些具体的人 产品

Director 是指挥者 是构建一个使用Builder 接口的对象。主要用于创建一些复杂的对象,这些对象内部构建的建造顺序通常是稳定的 稳定的建造顺序有指挥者定。但每个对象内部的构建又是变化的,就是走ConcreteBuilder 内部的具体流程。 像流水线一样 大的流程有指挥者控制,具体每个流程做什么由具体建造者自己决定。

当需要改变产品内部的表示时 需要在定义一个具体的建造者。


using UnityEngine;
public class BuilderStudy : MonoBehaviour {

	// Use this for initialization
	void Start () {
	    PersonDirector pd = new PersonDirector(new FatPersonBuilder());  
        pd.CreatPerson();
    }
}

/// <summary>
/// 指挥者
/// 指挥者可以规范 建造的一个过程
/// </summary>
public class  PersonDirector
{
    private PersonBuilder pb;
    
    public PersonDirector(PersonBuilder pb)
    {
        this.pb = pb;
    }
    public void CreatPerson()
    {
        //可以规范pb的过程
        pb.Step1();
        pb.Step2();
     }
}

/// <summary>
/// 建造者
/// </summary>
public abstract class PersonBuilder
{
    public abstract void CreatPerson();
    public abstract void Step1();
    public abstract void Step2();
}

public class FatPersonBuilder : PersonBuilder
{
    public override void CreatPerson()
    {
        Debug.Log("//胖人工厂 创建胖子");
    }
    public override void Step1()
    {
    }
    public override void Step2()
    {
    }
}
public class ThinPersonBuilder : PersonBuilder {
    public override void CreatPerson() {
        Debug.Log("//瘦人工厂 创建瘦子");
    }
    public override void Step1()
    {
    }
    public override void Step2()
    {
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值