欢迎光临散文网 会员登陆 & 注册

《游戏编程模式》笔记——类型对象

2023-09-13 06:59 作者:黑白色的枫  | 我要投稿

意图

创建一个类A来允许灵活的创建新“类型”,类A的每个势力都代表了不同的对象类型。

模式

定义类型对象类和有类型的对象类。每个类型对象实例代表一种不同的逻辑类型。每种有类型的对象保存对描述它类型的引用。

何时使用

不知道后面还需要什么类型的情况下。

修改或添加新类型不想改变代码或者重新编译。


个人理解,这一章主要讲的是面向数据。

假设我们制作一款RPG游戏,有各种各样的敌人,我们不应该定义一个 Enemy 基类,用 Goblin 类和 Slime 类继承,再编写各自的行为。

我们除了 Enemy 类中,再编写一个 EnmeyData 类,作为前者的成员变量,这个数据类作为类型对象,用来描述这个敌人类型,包括但不限于敌人的名字、最大血量、攻击力等信息,甚至敌人的简单 AI 也可以写在里面,Enemy 类通过数据类提供的数据来表现成对应的敌人。

设计决策

类型对象是封装的还是暴露的?

有类型的对象是如何创建的?

能改变类型吗?

支持何种继承?


参考

《游戏编程模式》

《游戏编程模式》笔记——类型对象的评论 (共 条)

分享到微博请遵守国家法律