生成器模式是创建者设计模式, 核心作用: 把复杂对象的创建过程 和 对象本身 分离, 让同一个创建过程可以生成不同类型的对象, 代码更清晰\易扩展\易维护.
简单说: 你不用自己一步步组成复杂对象, 交给”生成器”帮你造好, 直接拿成品用
一 生成器模式核心角色(4个)
- Product(产品): 最终要创建的复杂对象 (比如: 游戏角色\武器\房子)
- Builder(抽象生成器): 定义创建产品各个部件的接口
- ConcreteBuilder(具体生成器): 实现接口, 真正组装对象
二 Unity 实战案例: 创建不同类型的游戏角色
我们用 Unity 做一个场景: 展示\法师\射手 三种角色.
角色包含: 名称\武器\防具\技能\颜色材质, 属于复杂对象, 非常适合用生成器模式.
- 第一步: 创建Product(角色对象)
- 第二步: 创建 Builder(抽象生成器)
定义创建角色各个部件的接口:
- 第三步: 创建 ConcreteBuilder(具体生成器)
实现战士\法师\射手三种生成器:
战士生成器
法师生成器
射手生成器
- 第四步: 创建 Director(指挥者)
控制组装流程, 不用管具体怎么造:
- 第五步: Unity 测试调用(客户端)
新建脚本挂在到任意物体:
运行结果(Console输出)
三 生成器模式真正优势(Unity开发必看)
- 代码解耦
- 不用写一长串
new Hero("狂战士", "大剑", "铠甲", ...)
- 复杂对象的创建过程和使用完全分离
- 极易扩展
想要添加新角色 (如坦克\刺客)?
只需要:
- 新建一个
TankBuilder继承HeroBuilder
- 实现方法即可 完全不需要修改旧代码! (符合开闭原则)
- 流程统一
所有角色都按
名称 -> 武器 -> 防具 -> 技能 -> 颜色 流程创建, 不会乱四 生成器模式适合哪些Unity场景?
只要是复杂对象\多部件\多版本, 都能用:
- 生成不同类型的角色\敌人\NPC
- 生成不同品质的装备(白装\蓝装\金装)
- 生成不同风格的房子\建筑\关卡
- 生成自定义技能\道具\UI面板
五 一句话总结生成器模式
Director 安排流程, Builder 负责组装, 最后给你一个完整的复杂对象, 你只管使用, 不管创建细节.
非常适合Unity 中批量常见负责游戏对象, 让代码结构更干净, 更专业.
总结
- 生成器模式 = 分离复杂对象创建与使用
- 核心四角色: 产品\抽象生成器\具体生成器\指挥者
- Unity 中最适合: 角色\装备\建筑\道具等复杂对象创建
- 优点: 解耦\易扩展\流程统一\代码干净