Unity设计模式——建造者模式

Product类------产品类,由多个部件组成。

cs 复制代码
class Product 
{
    IList<string> parts = new List<string>();
    //添加产品部件
    public void Add(string part)
    {
        parts.Add(part);
    }
    public void Show()
    {
        foreach (string part in parts)
        {
            Debug.Log("产品:"+part);
        }
    }
}

Builder类------抽象建造者类,确定产品由两个部件Part A和Part B组成,并声明一个得到产品建造

后结果的方法GetResult。

cs 复制代码
abstract class Builder
{
    public abstract void BuildPartA();
    public abstract void BuildPartB();
    public abstract Product GetResult();
}

Concrete Builder类,具体建造者类。

cs 复制代码
class ConcreteBuilder : Builder
{
    private Product product =new Product();
    public override void BuildPartA()
    {
        product.Add("部件x");
    }

    public override void BuildPartB()
    {
        product.Add("部件y");
    }

    public override Product GetResult()
    {
        return product;
    }
}
class ConcreteBuilder2 : Builder
{
    private Product product = new Product();
    public override void BuildPartA()
    {
        product.Add("部件x2");
    }

    public override void BuildPartB()
    {
        product.Add("部件y2");
    }

    public override Product GetResult()
    {
        return product;
    }
}

Director类指挥者类。

cs 复制代码
class Director
{
    public void Construct(Builder builder)
    {
        builder.BuildPartA();
        builder.BuildPartB();
    }
}

客户端代码,客户不需要知道具体建造过程。

cs 复制代码
  private void Start()
    {
        Director director = new Director();
        Builder builder = new ConcreteBuilder();
        Builder builder1 = new ConcreteBuilder2();

        director.Construct(builder);
        Product p = builder.GetResult();
        p.Show();

        director.Construct(builder1);
        Product p1 = builder1.GetResult();
        p1.Show();

    }

建造者模式 是在当 创建复杂对象的算法 应该 独立于该对象的组成部分 以及 它们的装配方

式 时适用的模式。

相关推荐
o0向阳而生0o5 分钟前
100、23种设计模式之适配器模式(9/23)
设计模式·适配器模式
将编程培养成爱好2 小时前
C++ 设计模式《外卖菜单展示》
c++·设计模式
TechNomad10 小时前
设计模式:状态模式(State Pattern)
设计模式·状态模式
努力也学不会java10 小时前
【设计模式】 原型模式
java·设计模式·原型模式
TechNomad12 小时前
设计模式:模板方法模式(Template Method Pattern)
设计模式·模板方法模式
leo030814 小时前
7种流行Prompt设计模式详解:适用场景与最佳实践
设计模式·prompt
ytadpole17 小时前
揭秘设计模式:工厂模式的五级进化之路
java·设计模式
烛阴17 小时前
【TS 设计模式完全指南】用工厂方法模式打造你的“对象生产线”
javascript·设计模式·typescript
_请输入用户名20 小时前
EventEmitter 是广播,Tapable 是流水线:聊聊它们的本质区别
前端·设计模式
Buling_021 小时前
游戏中的设计模式——第一篇 设计模式简介
游戏·设计模式