`
13146489
  • 浏览: 251948 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

The Visitor Pattern Re-visited

 
阅读更多
原文地址:http://java.dzone.com/articles/visitor-pattern-re-visited
Understanding the problem
The actual problem is not the naming and horrible API verbosity of visiting code, but the mis-understanding of the pattern. It’s not a pattern that is best suited for visiting large and complex data structures with lots of objects of different types. It’s the pattern that is best suited for visiting simple data structures with few different types, but visiting them with hundreds of visitors. Take files and folders. That’s a simple data structure. You have two types. One can contain the other, both share some properties. Various visitors could be:

CalculateSizeVisitor
FindOldestFileVisitor
DeleteAllVisitor
FindFilesByContentVisitor
ScanForVirusesVisitor
… you name it
I still dislike the naming, but the pattern works perfectly in this paradigm.
分享到:
评论

相关推荐

    访问者模式VisitorPattern

    **访问者模式(VisitorPattern)** 访问者模式是一种行为设计模式,它使你能在不修改对象结构的前提下向对象添加新的操作。这种模式常用于处理具有复杂逻辑的对象结构,特别是当你需要对这些对象进行多态操作时。访问...

    Visitor-Design-Pattern-

    在`Visitor-Design-Pattern--master`项目中,可能会包含以下内容: - `Element`接口或抽象类:定义了接受访问者的方法。 - `ConcreteElementA`, `ConcreteElementB`等类:具体元素类,实现了`Element`接口,并提供...

    visitor-bd-AMap

    【标题】"visitor-bd-AMap"是一个与访客管理系统相关的项目,它结合了大数据(bd)和高德地图(AMap)的功能。这个小系统可能是为了实现对访客数据的高效管理和地理位置的智能化分析。 【描述】提到的是一个小型...

    visitor pattern

    **访客模式(Visitor Pattern)** 访客模式是一种行为设计模式,它允许在不修改对象结构的情况下,为对象增加新的操作。这种模式常用于将算法与数据结构分离,使得算法可以独立于数据结构进行变化。在软件开发中,当...

    java项目 Visitor-management-system

    项目由我组成员使用eclipse、MySQL开发,属于十分简易的信息管理系统,适合大学生软件工程专业的、有一定Java基础的开发者做参考。...资源内含Java源代码,项目使用介绍文本,项目介绍PPT和数据库关系图。

    design-pattern-java.pdf

    算法的封装与切换——策略模式(四) 模板方法模式-Template Method Pattern 模板方法模式深度解析(一) 模板方法模式深度解析(二) 模板方法模式深度解析(三) 访问者模式-Visitor Pattern 操作复杂对象结构——...

    visitor-composite-patterns-combined:复合和访客设计模式示例

    总结,"visitor-composite-patterns-combined"项目展示了如何在Java中有效地结合使用复合和访客设计模式,实现了一个灵活且可扩展的菜单系统。通过这两个模式,我们能够轻松地管理复杂的数据结构,并对其进行多样化...

    设计模式详解

    - 访问者模式(Visitor Pattern) - 状态模式(State Pattern) - 备忘录模式(Memento Pattern) - 解释器模式(Interpreter Pattern) - 职责链模式(Chain of Responsibility Pattern) ### 三、设计模式的...

    java开发设计模式

    - 访问者模式(Visitor Pattern) 除了这23种经典设计模式外,书中还提到了六大设计原则,它们是设计模式的基础,也是评价设计好坏的标准: - 单一职责原则(Single Responsibility Principle) - 里氏替换...

    Reflect on the Visitor design pattern

    【Visitor设计模式详解】 访问者模式(Visitor设计模式)是一种行为设计模式,它提供了一种在不修改对象结构的情况下对对象进行操作的方式。这个模式的主要目的是将算法与数据结构分离,使得算法可以在不改变对象...

    Fast-Tree-Visitor-Visitor-pattern

    快速树访问者访问者模式 设计一个开发以下两个访问者的访问者:一个访问者,它读取输入文件input.txt,并用文件中的所有单词填充树数据结构。 使用树数据结构将第二位访问者的性能最大化。 使用该树数据结构的插入...

    Java设计模式(第二版)中文版

    - **访问者模式**(Visitor Pattern) 4. **设计模式的实际应用** - 本书提供了大量的实际案例,通过这些案例学习如何将设计模式应用于具体的软件项目中。 - 每个设计模式都配有详细的代码实现和应用场景分析,...

    Design Patterns in C#

    - **访问者模式**(Visitor Pattern) #### 五、C#中的设计模式实践 - **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。 - **工厂模式**:定义一个创建对象的接口,但让子类决定实例化哪一个类。 -...

    24种设计模式介绍与6大设计原则

    **访问者模式**(Visitor Pattern) - 描述:表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 #### 19. **状态模式**(State Pattern) - 描述:...

    Recruit-Restaurant-Visitor-Forecasting-master.zip

    《Recruit Restaurant Visitor Forecasting: 使用Jupyter Notebook进行数据分析与预测》 在现代商业环境中,数据分析和预测已经成为餐厅管理中的重要工具。"Recruit Restaurant Visitor Forecasting-master.zip" 是...

    Visitor-and-Iterator-Design-Pattern

    访客模式 作者:Brian ( ) 您必须以两人一组的方式进行本实验 迭代器类 您已经提供了一个迭代器类Iterator ,用户可以创建它来遍历整个表达式树。 该迭代器的特殊之处在于它多次访问树的每个节点。...

    设计模式之访问者模式(Visitor Pattern)

    **访问者模式(Visitor Pattern)**是一种行为设计模式,它提供了一种在不修改对象结构的情况下增加新操作的方法。这种模式的主要思想是将数据结构与算法分离,使得算法可以在不改变对象结构的情况下独立变化。 在...

    Visitor-Management-System:SEAS访客管理系统(工程与应用科学学院)

    git clone https://github.com/parth-27/Visitor-Management-System.git 如果您不打算使用Sqlite3数据库,请相应地更改settings.py文件中的DATABASES变量。 您可以参考 请不要忘记在要发送确认邮件或访客密码的设置...

Global site tag (gtag.js) - Google Analytics