游戏设计模式学习笔记(18)访问者模式

游戏设计模式学习笔记(18)访问者模式

参考:

《设计模式与游戏完美开发》

《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)

《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)

【游戏设计模式】浅墨_毛星云: https://blog.csdn.net/poem_qianmo/article/details/53240330

runoob.com 设计模式:https://design-patterns.readthedocs.io/zh_CN/latest/structural_patterns/decorator.html

定义

  • 定义一个能够在一个对象结构中对于所有元素执行的操作。访问则让你可以定义一个新的操作,而不必更改到被操作元素的类接口。
  • 在数据基类里面有一个方法接受访问者,将自身引用传入访问者。
  • 调用的时候,遍历所有加入到容器的类,调用指定方法。

何时使用

  • 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。

优缺点

  • 优点
    • 符合单一职责原则。
    • 优秀的扩展性。
    • 灵活性。
  • 缺点
    • 具体元素对访问者公布细节,违反了迪米特原则。
    • 具体元素变更比较困难。
    • 违反了依赖倒置原则,依赖了具体类,没有依赖抽象。

应用

  • 配合观察者模式,实现事件系统,即发了个事件,遍历所有访问者调用方法。
  • 游戏需要遍历需要所有对象的,都能用这个模式。

你可能感兴趣的:(游戏设计模式,学习笔记)