`
canonical
  • 浏览: 364560 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[导入]Exportor: Visitor模式

 
阅读更多

数据导出的功能大致可以分解为三个部分: 1. 从数据源读取一条记录 2. 将一条记录导出为指定格式 3. 循环调用1和2
首 先我们需要一种机制来对外暴露数据源(一种Container)中的数据,Iterator模式恰能满足要求。其次,我们需要一种机制来对一系列数据进行 处理,这对应于Visitor模式。第三,在组合Iterator模式和Visitor模式的处理过程中,我们需要表达出平面表数据集的基本特征。
在witrix平台中,平面表数据导出和转换通过TablePageProcessor对象来完成,
class TablePageProcessor{
 IPageViewer viewer;

 public Object process(ITableVisitor visitor){
  Pager pager = new Pager(viewer, pageSize);
  Iterator it = pager.itemIterator();
  visitor.visitBegin(headers);
  while(it.hasNext()){
   Object row = it.next();
   if(!visitor.visitRow(row))
    break;
  }
  return visitor.visitEnd();
 }
}

interface ITableVisitor{
 void visitBegin(List headers);
 boolean visitRow(Object row);
 Object visitEnd();
}

IPageViewer是暴露平面表数据的标准接口,它通过Pager对象的包装之后可以提供各种Iterator.
ITableVisitor体现了平面表数据的基本特征: header + 一系列row, 存在数据边界(起始与终止)
TablePageProcessor固化了IPageViewer和ITableVisitor的组合过程。
ITableVisitor可以有多种实现,例如CSVBuilder, ExcelBuilder等等。
分享到:
评论

相关推荐

    Visitor模式Visitor模式

    Visitor 模式 Visitor 模式是一种行为型设计模式,它允许在不修改已有的类层次的情况下,增加新的操作或行为。这种模式可以使得开发者在不改变原有类层次的情况下,能够对对象进行不同的处理。 从给定的文件信息...

    设计模式C++学习之访问者模式(Visitor)

    访问者模式(Visitor)是一种行为设计模式,它允许在不修改对象结构的前提下向对象结构中的元素添加新的操作。这种模式将算法与数据结构分离,使得算法可以独立于数据结构进行变化,增强了系统的可扩展性。 在C++中...

    C#面向对象设计模式纵横谈(24):(行为型模式) Visitor 访问者模式

    ### C#面向对象设计模式纵横谈(24):(行为型模式) Visitor 访问者模式 #### 概述 在本篇文章中,我们将深入探讨面向对象设计模式中的一个非常重要的模式——**Visitor(访问者)模式**。此模式属于行为型模式的一...

    C++ Visitor模式

    **C++ Visitor模式详解** Visitor模式是设计模式中的一种行为模式,它在对象结构中引入了一个访问者角色,使得访问者能够对结构中的每个元素进行操作,而不改变元素本身的行为。这种模式允许我们在不修改已有类的...

    基于visitor模式和访问者模式的表达式树_求值引擎

    本项目基于“visitor模式”和“访问者模式”,实现了用于计算表达式的求值引擎,这涉及到一种将数学表达式转化为数据结构(表达式树)的方法,然后通过遍历该树来执行计算。下面我们将详细探讨这些概念。 1. **...

    Visitor模式

    访问者模式(Visitor Pattern)是一种行为设计模式,它使你能在不修改对象结构的前提下,为对象添加新的操作。这种模式在处理具有复杂逻辑和多种类型的对象结构时特别有用,因为它允许你在不改变原有结构的情况下,...

    试试visitor设计模式

    也许最开始出现这种模式,是因为另外的原因: 我有一堆数据放在一个库里头,不想让其它人拿着, 如果你要用数据干活,那你就把函数指针给我,我来替你使用这个数据。...然后人们就说,这是visitor模式。

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

    **访问者模式(Visitor)详解** 访问者模式是一种行为设计模式,它使你可以在不修改对象结构的情况下,为对象添加新的操作。这种模式的核心在于将数据结构与对这些数据的操作解耦,使得增加新的操作变得容易,同时...

    设计模式系列之visitor

    "设计模式系列之visitor"是一个关于软件设计模式的讨论,特别是关注于“访问者”(Visitor)模式。这个模式是GOF(Gamma, Helm, Johnson, Vlissides)在他们的经典著作《设计模式:可复用面向对象软件的基础》中提出...

    [源代码] 《易学 设计模式》 随书源代码

    第22章 步调一致:访问者模式 (Visitor) 第23章 左右逢源:调停者模式 (Mediator) 第24章 白纸黑字:备忘录模式 (Memento) 第25章 周而复始:迭代器模式 (Iterator) 第26章 望文生义:解释器模式 (Interpreter) 第27...

    Visitor校验器 域对象级别上验证(完整示例源码)

    struts2中Visitor校验器以及域对象级别上验证和使用上下文优化的使用,我自己写的一个完整代码,详细的展示了如何使用Visitor校验器以及怎样在域对象上验证和注意事项,代码解压后可以直接部署到MyEclipse上运行,...

    23种设计模式(C++).pdf

    - Visitor模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 - Chain of Responsibility模式:为解除请求的发送者和接收者之间耦合,而使多个...

    设计模式专题---设计模式示例代码(全)(python--c++)

    4. **Visitor模式**:Visitor模式属于行为设计模式,它为对象结构提供一种方式来遍历该结构中的所有对象并执行某种操作,而无需修改这些对象。这使得增加新操作变得容易,因为不需要修改现有类。 5. **Prototype...

    李建忠 C#面向对象设计模式纵横谈(25):设计模式总结

    3. 行为型模式:这类模式关注对象间的交互和职责分配,包括策略(Strategy)、模板方法(Template Method)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of Responsibility)、命令(Command)、备忘录...

    访问者模式VisitorPattern

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

    JAVA设计模式chm文档

    创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) ...设计模式之Visitor

    C#设计模式之Visitor

    **C#设计模式之Visitor** **一、设计模式概述** 设计模式是软件开发中的经验总结,它提供了解决常见问题的可复用解决方案。在C#编程中,设计模式可以帮助我们编写更灵活、可扩展和易于维护的代码。"Visitor"(访问...

    visitor:Meteor 匿名用户跟踪平台

    例子: 服务器 server/lib/visitor.js Visitor.init();客户端客户端/lib/visitor.js Visitor.init({subscribe: true});将包useful:visitor-client和useful:visitor-server自动添加到您的应用程序。安装 meteor add ...

Global site tag (gtag.js) - Google Analytics