设计模式---建造者模式(DesignPattern_Builder)

简介: DesignPattern_Builder摘录自:设计模式与游戏完美开发十年磨一剑,作者将设计模式理论巧妙地融入到实践中,以一个游戏的完整实现呈现设计模式的应用及经验的传承 《轩辕剑》之父——蔡明宏、资深游戏制作人——李佳泽、Product...

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();
    }
}

相关文章
|
设计模式 Java
【设计模式系列笔记】建造者模式
建造者模式是一种创建型设计模式,用于将复杂对象的构建与其表示分离,使构建过程可定制。关键元素包括产品类(定义要构建的对象)、建造者接口(定义构建方法)、具体建造者类(实现构建过程)和指导者类(负责构建过程)。通过建造者模式,客户端可以灵活地创建具有不同表示的复杂对象,提高代码的可读性和可维护性,尤其适用于构建过程复杂且包含多个可选部分的情况。
449 1
|
设计模式 安全 Java
构建未来应用:Java设计模式 - 建造者模式(Builder)在现代编程中的应用
【4月更文挑战第7天】建造者模式是提升代码质量的关键,尤其在复杂环境中。它分步骤构建对象,将构建与表示分离,适用于UI构建、数据模型组装、配置文件解析和网络请求构造等场景。最佳实践包括明确构建步骤、提供默认值、支持链式调用和确保线程安全。然而,过多步骤、不一致状态和性能问题是使用时需注意的问题。掌握建造者模式对于现代编程至关重要。
348 3
|
设计模式 Java Apache
【设计模式】【创建型模式】建造者模式(Builder)
一、入门 什么是建造者模式? 建造者模式(Builder Pattern)是一种创建型设计模式,用于逐步构建复杂对象。 它通过将对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。 为什么
997 14
|
设计模式 算法
设计模式--建造者模式 builder
这篇文章通过一个电脑购买的例子,详细解释了建造者模式的四个角色(产品类、抽象构建者、实体构建类和指导者类),并提供了相应的代码实现,阐述了建造者模式在设计复杂对象时的应用和优势。
设计模式--建造者模式 builder
|
设计模式 算法 Java
Java设计模式-建造者模式(6)
Java设计模式-建造者模式(6)
244 1
|
设计模式 uml
大话设计模式(3)——造物者一般的建造者模式
大话设计模式(3)——造物者一般的建造者模式
267 1
大话设计模式(3)——造物者一般的建造者模式
|
设计模式 XML 存储
【四】设计模式~~~创建型模式~~~建造者模式(Java)
文章详细介绍了建造者模式(Builder Pattern),这是一种创建型设计模式,用于将复杂对象的构建与其表示分离,允许分步骤创建一个复杂的对象而无需指定其内部的具体构造细节。通过定义抽象建造者、具体建造者、指挥者和产品角色,建造者模式允许通过相同的构建过程创建不同的产品表示,提高了系统的灵活性和扩展性。
|
设计模式 JavaScript Java
Java设计模式:建造者模式详解
建造者模式是一种创建型设计模式,通过将复杂对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。本文详细介绍了建造者模式的原理、背景、应用场景及实际Demo,帮助读者更好地理解和应用这一模式。
826 0
|
设计模式 算法
建造者模式-大话设计模式
建造者模式-大话设计模式
243 1
|
设计模式 测试技术 Go
[设计模式 Go实现] 创建型~建造者模式
[设计模式 Go实现] 创建型~建造者模式
221 3

热门文章

最新文章