分享

Java设计模式-访问者模式

 了一尘 2014-09-18

定义:封装对数据结构中元素的操作,使得不需要修改这些元素的类,就可以为增加新的操作.

优点:

  1. 符合单一职责.
  2. 优秀的扩展性.很方便地增加对元素的操作.
  3. 很好的灵活性.

缺点:

  1. 元素的细节需要对访问者公开.
  2. 元素变更比较困难.增加或删除元素,需要对访问者也进行修改.
  3. 违背依赖倒置原则.访问者依赖具体元素而不是抽象元素.

应用场景:

  1. 一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作。
  2. 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类。 Vi s i t o r使得你可以将相关的操作集中起来定义在一个类中。当该对象结构被很多应用共享时,用Vi s i t o r模式让每个应用仅包含需要用到的操作。
  3. 定义对象结构的类很少改变,但经常需要在此结构上定义新的操作。改变对象结构类需要重定义对所有访问者的接口,这可能需要很大的代价。如果对象结构类经常改变,那么可能还是在这些类中定义这些操作较好。

代码:

https://github.com/DewMaple/DesignMode_Java/blob/master/src/com/design_mode/VisitorPattern.java


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多