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

定义

将要给复杂对象的构造流程与它的对象表现分离出来,让相同的构造流程可以产生不同的对象行为表现。

组成部分

Director(建造指示者)
负责对象构建时的流程分析安排
在Construct方法中,会明确定义对象的流程,及调用Builder接口方法的顺序。
Builder(功能实现者接口)
定义不同的操作方法将功能翻开来实现
其中的没有给方法都是用来提供给某复杂对象的一部分功能,或时提供设置规则。
ConcreteBuilder(功能实现者)
Builder的具体表现,实现产出功能的类
不同的ConcreteBuilder(功能实现者)可以产生不同的功能,用来实现不同对象的行为表现和功能。
Product(产品)
代表最终完成的复杂对象,必须提供发放让Builder类可以将各部分功能设置给它。

游戏应用

在设计植物大战僵尸中,植物和僵尸的产生中属性等的设置是用了建造者模式。
Director 复杂了植物和僵尸在生成后所需要的处理,比如实例化角色和添加武器和添加属性

public class BuilderSystem
{
    public void Construct(ICharacterBuild characterBuild)
    {
        characterBuild.InitGameObject();
        characterBuild.AddWeapon();
        characterBuild.AddAttr();
    }
}

Builder

public abstract class ICharacterBuild
{
    public abstract void InitGameObject();
    public abstract void AddWeapon();
    public abstract void AddAttr();
}

ConcreteBuilder

public class PlantBuilder : ICharacterBuild
{
    public override void InitGameObject()
    {
        //(实例化角色)
    }
    public override void AddAttr()
    {
       //添加植物属性
    }

    public override void AddWeapon()
    {
       //添加植物武器(攻击方式)
    }
}

在之前工厂模式中调用

    public override void InitPlant(string plantName, int x, int y)
    {
        //与敌人一样,就不再描述
        //设置属性
        BuilderSystem builderSystem = new BuilderSystem();
        PlantBuilder plantBuilder = new PlantBuilder();
        builderSystem.Construct(plantBuilder);
    }

优缺点

建造者模式能将复杂对象的产生流程与功能实现拆分后,让系统调整和维护变得更容易,此外,在不需要关系实现者的情况下,调整产生流程的顺序就能完成装备线的更改,这也是建造者模式的另一优点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值