Unity设计模式—抽象工厂模式

Brief | 概要

抽象工厂模式比工厂方法模式的抽象化程度更高,它提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的类。

请添加图片描述

[工厂方法模式](Unity设计模式—工厂方法模式 | 问渠 (wenqu.site))解决了简单工厂模式种工厂类职责太重的问题,但由于工厂方法模式中的每个具体工厂只有一个或者一组重载的工厂方法,只能生产一种产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。

有时候可能需要一个工厂能够提供多种产品对象,一个“产品族”都由同一个工厂来生产,这就是抽象工厂模式的基本思想。

查看抽象工厂设计模式 (refactoringguru.cn)以了解更多。

The Question | 需求

我们继续沿用在[工厂方法模式](Unity设计模式—工厂方法模式 | 问渠 (wenqu.site))里提出的需求:

在你的游戏里,有一个装饰系统。

玩家可以生成各种类型的装饰物:

  • 建筑Building,继承Item
    • 需要在运行时挂载UnityEngine.AI.NavMeshStacle组件
  • 商店Shop,继承BaseBuilding
    • 不要挂载NavMeshStacle
    • 若shop的id==shop_001,需要在运行时额外挂载一个Fog脚本
  • 树Tree,继承Item
    • Tree类有一个BeChopDown方法,用于实现被砍伐后的效果
    • 读取本地的配置文件,初始化树的属性(伪代码)
    • 在TreePool里增加这个数(伪代码)

在这个基础上,策划提了一个新需求——</

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NickPansh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值