从王者荣耀看设计模式(二十三.访问者模式)
从王者荣耀看设计模式 一.简介 在游戏中,根据场上状况给英雄配备合适的装备是赢的比赛的重要环节。对于刚开始玩王者荣耀(低端玩家like me),在选择装备的时候只会关注装备能给英雄带来多少伤害的增幅(装备属性),而大神级别玩家会仔细研究装备的详细描述 二.模式动机 在有些集合对象中可能存在多种不同类型的元素,而且不同的调用者在使用这些元素时也有所区别,这些调用者称为访问者。此时,可以使用访问者模式来进行系统设计。访问者模式为多个访问者访问集合对象中的多种元素提供了一种解决方案。在本实例中,集合中存储有装备"冰霜法杖"和"破魔刀"的属性和详细描述。低端玩家关注点(想要访问的对象)为集合中的属性。高端玩家关注点为集合中的详细描述。 三.访问者模式 访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式是一种对象行为型模式 访问者模式的应用场景 在以下情况下可以使用访问者模式 ■ 一个对象结构包含很多类型的对象,希望对这些对象实施一些依赖其具体类型的操作。在访问者中针对每一种具体的类型都提供了一个访问操作,不同类型的对象可以有不同的访问操作 ■ 需要对一个对象结构中的对象进行很多不同的并且不相关的操作 ■ 对象结构中对象相应的类很少改变,但经常需要在此对象结构上定义新的操作