C++设计模式学习
文章平均质量分 72
m0_71100223
这个作者很懒,什么都没留下…
展开
-
设计模式之 命令模式
将一个请求或者命令(做红烧鱼和锅包肉)封装为一个对象,以便这些请求可以以对象的方式通过参数进行传参(参数化),对象化之后的请求还可以排队执行或者根据需求进行使用。命令模式的核心实现手段,是将成员函数的调用封装成命令对象,也就是对请求进行封装,命令对象将动作和接收者包裹到对象中,并且只暴露出了一个Execute方法以让接受者执行动作。原创 2024-07-04 16:12:48 · 450 阅读 · 0 评论 -
设计模式 单例模式再探
饿汉与懒汉 双重锁单例原创 2024-06-11 16:10:52 · 345 阅读 · 0 评论 -
设计模式之观察者模式
这个小游戏中主要用到两个容器,使用list容器管理家族成员,使用map容器管理家族,那么每次收发消息的时候,就遍历list容器,挨个调用函数,创造或者注销家族就在map容器中进行,每创建一个家族,就会对应创建家族list,便于管理。观察者模式也被称作“发布-订阅”模式,只有提前订阅的人(在同一个list中)才能接收到发布者发布的消息。整个过程即为,发布者发布消息,通知器收到消息开始找订阅者,然后挨个给订阅者发送消息(即调用订阅者的成员函数)。学习案例来源:《C++新经典设计模式》 王建伟编著。原创 2024-06-02 12:20:04 · 354 阅读 · 0 评论 -
工厂模式再探
前文学习工厂模式后,发现无论哪种方式,当从外部指令进行创建某一种怪物时,总会使用if/else进行判断,不论是在类里,还是在主函数中。如果有100种怪物,那么就要写100种判断,并且在新增怪物种类的时候,也会去添加if/else的分支判断。使用map容器,就可以减少if/else的判断语句,将判断交给容器去做,只要在容器里匹配到对应的怪兽类型type,就能生成相应的怪兽。直接代码。原创 2024-05-16 11:46:43 · 219 阅读 · 0 评论 -
工厂模式学习小结
如果只是增加不同地区的这三类怪物,那么使用抽象工厂方法很合适,但是,如果想要增加新的怪物,例如龙系,那么就要在Monster类里进行增加,则不符合开闭原则。因此要避免在产品等级结构不稳定的情况下使用该模式,在游戏中则是在怪物种类固定的情况下,就可以使用抽象工厂模式。学习案例来源:《C++新经典设计模式》 王建伟编著。原创 2024-05-15 20:36:45 · 668 阅读 · 0 评论 -
单例模式学习小结
记录一下单例模式的学习小结。创建了获取实例的方法 get_instance(),实现的时候,就是使用该方法->成员内部的函数,那么也就是无论什么时候都是只指向这一个对象。原创 2024-05-11 09:43:14 · 333 阅读 · 1 评论