美文网首页
访问者模式

访问者模式

作者: fanren | 来源:发表于2019-04-13 18:17 被阅读0次

定义

封装一些作用于某种数据结构中的各个元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的操作

场景

  • 对象的结构比较稳定,当经常需要在此对象结构上定义新的操作;
  • 需要对一个对象结构中的对象进行很多不同的并且不想管的操作,而需要避免这些操作“污染”这些对象的类,也不希望在增加新操作时修改这些类;

角色划分

  • 角色一:抽象访问者:接口或者抽象类(Visitor)
    作用:定义了每一个元素的访问行为
    它的方法参数:就是可以访问的元素
  • 角色二:具体访问者(ConcrateVisitor)
    作用:给出了每一个元素类访问时所产生的具体行为
  • 角色三:元素接口(Element)
  • 角色四:具体元素(ConcrateElement)
  • 角色五:定义了其中我们所提到所有的对象结构(Objectstructure)

原理案例

以公司管理为例,公司会对每个人进行考核,但是对于每个人的考核点不同
开发者:代码数量,bug数量。。。
项目经理:项目个数,项目进度。。。
而对于不同的考核官来说,查看点不同,
CTO:考核的时候,主要考核你的项目进度,项目个数等等
CEO:考核的时候,主要是查看你的kpi
在这里我们就可以采用访问者模式:demo

  • 角色一:抽象访问者(VisitorProtocol)
  • 角色二:具体访问者(CTOVisitor,CEOVisitor)
  • 角色三:元素接口(协议)(ElementProtocol)
  • 角色四:具体元素(EngineerElement,ManagerElement)
  • 角色五:对象结构(查询系统,业务逻辑等等)(BusinessReport)

相关文章

网友评论

      本文标题:访问者模式

      本文链接:https://www.haomeiwen.com/subject/pgerwqtx.html