美文网首页Unity教程合集Unity基础入门分享程序员
设计模式---建造者模式(DesignPattern_Build

设计模式---建造者模式(DesignPattern_Build

作者: su9257_海澜 | 来源:发表于2017-08-30 09:34 被阅读27次

DesignPattern_Builder

摘录自:设计模式与游戏完美开发

十年磨一剑,作者将设计模式理论巧妙地融入到实践中,以一个游戏的完整实现呈现设计模式的应用及经验的传承 《轩辕剑》之父——蔡明宏、资深游戏制作人——李佳泽、Product Evangelist at Unity Technologies——Kelvin Lo、信仁软件设计创办人—— 赖信仁、资深3D游戏美术——刘明恺 联合推荐全书采用了整合式的项目教学,即以一个游戏的范例来应用23种设计模式的实现贯穿全书,让读者学习到整个游戏开发的全过程和作者想要传承的经验,并以浅显易懂的比喻来解析难以理解的设计模式,让想深入了解此领域的读者更加容易上手。

工程GitHub

BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。

建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。
using UnityEngine;
using System.Collections.Generic;

namespace DesignPattern_Builder
{
    // 含有复杂零件的产品
    public class Product
    {
        private List<string> m_Part = new List<string>();
        public Product(){}
        public void AddPart(string Part)
        {
            m_Part.Add(Part);
        }
        public void ShowProduct()
        {
            Debug.Log("ShowProduct Functions:");
            foreach(string Part in m_Part)
                Debug.Log(Part);
        }
    }

    // 生成一个产品的抽象类
    public abstract class Builder
    {
        public abstract void BuildPart1(Product theProduct);
        public abstract void BuildPart2(Product theProduct);
    }

    // 组装A产品
    public class ConcreteBuilderA : Builder
    {
        public override void BuildPart1(Product theProduct)
        {
            theProduct.AddPart( "ConcreteBuilderA_Part1");
        }
        public override void BuildPart2(Product theProduct)
        {
            theProduct.AddPart( "ConcreteBuilderA_Part2");
        }
    }

    // 组装B产品
    public class ConcreteBuilderB : Builder
    {
        public override void BuildPart1(Product theProduct)
        {
            theProduct.AddPart( "ConcreteBuilderB_Part1");
        }
        public override void BuildPart2(Product theProduct)
        {
            theProduct.AddPart( "ConcreteBuilderB_Part2");
        }
    }

    // 建造管理 就是理由Builder来建造一个产品
    public class Director
    {
        private Product m_Product;

        public Director(){}

        // 建造
        public void Construct(Builder theBuilder)
        {
            // 开始组装产品
            m_Product = new Product();
            theBuilder.BuildPart1( m_Product );
            theBuilder.BuildPart2( m_Product );
        }

        // 取得成品
        public Product GetResult()
        {
            return m_Product;
        }
    }
}
using UnityEngine;
using System.Collections;
using DesignPattern_Builder;

public class BuilderTest : MonoBehaviour
{

    void Start()
    {
        UnitTest();
    }

    void UnitTest()
    {
        // 建造
        Director theDirectoir = new Director();
        Product theProduct = null;

        // 使用BuilderA建立
        theDirectoir.Construct(new ConcreteBuilderA());
        theProduct = theDirectoir.GetResult();
        theProduct.ShowProduct();

        // 使用BuilderB建立
        theDirectoir.Construct(new ConcreteBuilderB());
        theProduct = theDirectoir.GetResult();
        theProduct.ShowProduct();
    }
}

相关文章

  • 设计模式---建造者模式(DesignPattern_Build

    DesignPattern_Builder 摘录自:设计模式与游戏完美开发 十年磨一剑,作者将设计模式理论巧妙地融...

  • Retrofit

    Retrofit设计模式 动态代理,装饰模式,建造者模式,抽象工厂模式,适配器模式 建造者模式创建Retrofit...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 1. 模式定义 建造者模式又可以成为生成器模式,它属于对象创建型模式。建造者模式将一个复杂对...

  • java设计模式--建造者模式

    java设计模式--建造者模式 建造者模式定义 建造者模式:是将复杂对象的构建与表示进行分离,使同样的构建过程会有...

  • 【Java设计模式】--建造者模式

    建造者模式(Bulider模式) 一、什么是建造者模式 建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示...

  • 建造者设计模式-Builder design pattern

    建造者设计模式是创建型设计模式的一种。创建型设计模式处理对象创建的问题。 建造者设计模式,用来构建需要经过若干个建...

  • 设计模式

    Java 设计模式情景分析 ——单例模式 Java 设计模式情景分析——建造者模式 Java 设计模式情景分析——...

网友评论

    本文标题:设计模式---建造者模式(DesignPattern_Build

    本文链接:https://www.haomeiwen.com/subject/pnezdxtx.html