zoukankan      html  css  js  c++  java
  • 设计模式学习总结(21) 訪问者模式

    本系列主要记录设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它;它是怎样解决的,掌握它的结构图,记住它的关键代码;可以想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优缺点是什么,其有哪些使用场景,在使用时要注意什么。

    尊重作者,转载请注明晔阳的Bloghttp://blog.csdn.net/hacke2


    21.訪问者模式

    意图:主要讲数据结构与数据操作分离
    主要解决:稳定的数据结构和易变的操作耦合问题
    什么时候使用:与类本不相关的,为了避免这个污染 ,使用訪问者模式将这些封装到訪问者模式
    怎样解决 :在被訪问的类里面加一个对外提供接待訪问者的接口
    结构图


    关键代码:在数据基础类里面有一个方法接受訪问者,将自身引用传入訪问者
    应用实例:你在朋友家做客,你是訪问者,朋友接受你的訪问,你通过朋友的描写叙述,然后对朋友的 描写叙述做出一个推断,这就是訪问者模式
    长处:1、符合单一职责原则。 2、优秀的扩展性。3、灵活性  
    缺点:1、详细元素对訪问者发布细节,违反了迪米特原则2、详细元素变更比較困难 3、违反了依赖倒置原则,依赖了详细类,没有依赖抽象
    使用场景:1、对象结构中对象相应的类非常少改变,但常常须要在此对象结构上定义新的操作。
    2、须要对一个对象结构中的对象进行非常多不同的而且不相关的操作,而须要避免让这些操作“污染”这些对象的类,也不希望在添加新操作时改动这些类
    注意事项:訪问者能够对功能进行统一,能够做报表、UI、拦截器与过滤器

  • 相关阅读:
    微服务2:微服务全景架构
    SystemVerilog语言简介
    Slip打包与解包及MATLAB程序
    恶性卷积码
    通信原理之调制解调(2)QPSK
    FPGA仿真只适合开发定制IP的设计师?
    用CCS开发DSP应用程序的代码结构、加电装载及在线编程
    符号能量问题
    该如何选择?
    无线通信距离的计算
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3777430.html
Copyright © 2011-2022 走看看