此书介绍了一些常见的游戏开发模式,并且还介绍了他们的使用情景,使读者不必陷入滥用设计模式的陷阱中去。
此书对我的最大帮助是让我从另一个视角重新审视了自己的代码,发现自己的代码还有许多可以改进的地方。
列举几个我觉得重要的模式吧:
命令模式
将一个请求封装成一个对象,从而允许你使用不同的请求、队列或日志将客户端参数化,同时支持请求操作的撤销与恢复。
观察者模式
在对象间定义一种一对多的依赖关系,以便当某对象的状态改变时,与他存在依赖关系的所有对象都能收到通知并自动进行更新
单例模式
确保一个类只有一个单例,并为其提供一个全局访问入口
状态模式
运行一个对象在其内部状态改变时改变自身的行为。对象看起来像是在修改自身类
组件模式
允许一个单一的实体跨越多个不同域而不会导致耦合
事件队列
对消息或事件的发送与受理进行时间上的解耦。
服务定位器
为某服务提供一个全局访问入口来避免使用者与该服务具体实现类之间产生耦合。
数据局部性
通过合理组织数据利用CPU的缓存机制来加快内存访问速度。
脏标记模式
将工作推迟到必要时进行以避免进行不必要的工作。
对象池
使用固定的对象池重用对象,取代单独地分配和释放对象,以此来达到提升性能和优化内存使用的目的。
空间分区
将对象储存在根据位置组织的数据结构中来高效地定位他们。