美文网首页
访问者模式

访问者模式

作者: 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