![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
游戏编程模式
文章平均质量分 54
设计模式在游戏中的应用
HumbleSy
濡湿我鬃毛的,岂只是夜晚的露水?
展开
-
原型模式
原型模式 什么是原型模式 使用特定原型实例来创建特定对象,并通过拷贝原型来创建对象 解决了什么问题 对象创建较复杂,需要频繁创建,简化过程 优势 对创建较复杂的对象,简化创建过程,提高效率 弊端 需要考虑深拷贝与浅拷贝问题 克隆方法位于类内,修改时需要进入类内 违反了开闭原则 示例 class Data { public: Data(string name) { Name = name; } string Name; }; //怪物基类 class Mon原创 2021-06-06 16:47:59 · 121 阅读 · 0 评论 -
观察者模式
观察者模式 什么是观察者模式 在对象之间定义一种一对多的关系,当某个对象状态改变时,与他存在依赖关系的所有对象都能收到通知并自动进行更新 解决什么问题 当一个对象改变需要通知其他对象,但是不希望与其耦合 优势 解耦合主题接口只依赖于观察者接口,修改时,遵从开闭原则, 弊端 当存在大量观察者对象时将会耗费大量时间通知 被观察者只有在所有观察者通知返回后才能继续执行,任何一个通知都有可能堵塞被观察者对象 当观察者与被观察者如果有循环依赖,可能诱发隐患 示例 enum Event { Event_ONE,原创 2021-05-30 13:56:24 · 152 阅读 · 0 评论 -
享元模式
享元模式 什么是享元模式 通过运用共享技术有效的支持大量的细粒度对象 解决什么问题 在程序设计中有时需要大量的细粒度类实例对象(划分的具体的类)来表示数据,如果这些实例除了几个参数外基本是相同的,有时能大幅度减少类实例化的数量。如果将基本相同的参数移到类外面,在方法调用时传入,就能通过共享对象的实例来大幅度减少单个实例的数目。 内部状态 在享元对象内部共享且不随外界环境变化而变化的状态。 外部状态 随外界变化而变化,且不可以共享的状态。 优势 在需要大量细粒度对象实例时,通过共享对象实例,大幅度减少了类实例原创 2021-04-21 19:51:39 · 136 阅读 · 0 评论 -
游戏编程模式-命令模式
命令模式 命令(command) 将请求封装为对象,从而使用不同的请求将客户端参数化,同时支持请求撤销与恢复。 #include <iostream> using namespace std; class Receiver; class Inveoker; class BaseCommand; /*接收者 执行者 */ class Receiver { public: void CommandA() { cout << "Command原创 2021-04-15 08:52:05 · 134 阅读 · 0 评论