`

迭代器模式1

 
阅读更多

14.1  场景问题

14.1.1  工资表数据的整合

       考虑这样一个实际应用:整合工资表数据。

       这个项目的背景是这样的,项目的客户方收购了一家小公司,这家小公司有自己的工资系统,现在需要整合到客户方已有的工资系统上。

       客户方已有的工资系统,在内部是采用的List来记录工资列表;而新收购的这家公司的工资系统,在内部是采用的数组来记录工资列表;但是幸运的是,两个系统用来描述工资的数据模型是差不多的。

       要整合这两个工资系统的工资数据,当然最简单的方式是考虑直接把新收购的这家公司的工资系统,也改成内部使用List来记录工资列表,但是经过仔细查看源代码,发现有很多的代码跟这个数组相关,还有很多是比较重要的逻辑处理,比如计算工资等,因此只好作罢。

现在除了要把两个工资系统整合起来外,老板还希望能够通过决策辅助系统来统一查看工资数据,他不想看到两份不同的工资表。那么应该如何实现呢?

14.1.2  有何问题

       本来就算内部描述形式不一样,只要不需要整合在一起,两个系统单独输出自己的工资表,是没有什么问题的。但是,老板还希望能够以一个统一的方式来查看所有的工资数据,也就是说从外部看起来,两个系统输出的工资表应该是一样的。

经过分析,要满足老板的要求,而且要让两边的系统改动都尽可能的小的话,问题的核心就在于如何能够以一种统一的方式来提供工资数据给决策辅助系统,换句说来说就是:如何能够以一个统一的方式来访问内部实现不同的聚合对象。

分享到:
评论

相关推荐

    16迭代器模式1

    1. **封装性**:迭代器模式将遍历逻辑封装在迭代器中,使得聚合对象和遍历操作解耦,降低了系统的复杂度。 2. **灵活性**:通过定义不同的具体迭代器,可以支持多种遍历方式,增加新的遍历算法只需添加新的迭代器...

    23钟设计模式之迭代器模式模式

    1. **简单性**:通过使用迭代器模式,遍历聚合数据结构变得简单,因为遍历的复杂性由迭代器对象承担。 2. **解耦**:迭代器模式通过引入迭代器角色,将聚合对象和遍历算法分离,降低两者之间的耦合度。 3. **灵活性...

    设计模式之迭代器模式(Iterator)

    迭代器模式是软件设计模式中的一种行为模式,它在编程中扮演着重要的角色,尤其是在处理集合数据时。迭代器模式的核心思想是提供一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式使得用户可以在不...

    迭代器模式Demo

    迭代器模式是一种设计模式,它在软件工程中扮演着重要的角色,特别是在处理集合或容器类对象的遍历操作时。这种模式提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,...

    迭代器模式(Iterator Pattern)详解 1. 什么是迭代器模式? 2. 为什么需要迭代器模式? 3. 迭代器模式的核心概念 3.1 迭代器(Iterator) 3.2 具体迭代器(Conc

    1. 什么是迭代器模式? 2. 为什么需要迭代器模式? 3. 迭代器模式的核心概念 3.1 迭代器(Iterator) 3.2 具体迭代器(Concrete Iterator) 3.3 聚合(Aggregate) 3.4 具体聚合(Concrete Aggregate) 4. 迭代器...

    迭代器模式代码示例

    1. 由于迭代器通常依赖于具体的聚合类,因此迭代器模式破坏了聚合的封装性。 2. 如果聚合类的变化可能会导致迭代器的变化,这违反了开闭原则。 总的来说,迭代器模式是实现遍历集合元素的一种灵活且高效的方式,...

    设计模式的迭代器模式的例子

    迭代器模式是软件设计模式中的一种行为模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以方便...

    设计模式之迭代器模式

    1. **分离遍历操作**:迭代器模式将遍历元素的操作与聚合对象的结构分离,使两者可以独立变化,提高了代码的灵活性。 2. **多种遍历方式**:通过创建不同实现的迭代器,用户可以使用不同的遍历策略。 3. **支持只读...

    设计模式(C#)之迭代器模式(Iterator Pattern)

    迭代器模式是软件设计模式中的一种行为模式,它在C#等面向对象编程语言中有着广泛的应用。这个模式的主要目标是允许用户遍历一个聚合对象(如数组、集合或列表)的所有元素,而无需了解底层的实现细节。下面将详细...

    迭代器模式demo

    迭代器模式是一种行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象编程语言中,迭代器模式被广泛应用于集合类库,如ArrayList、LinkedList等。这个"迭代器模式demo...

    设计模式-迭代器模式(讲解及其实现代码)

    迭代器模式是一种行为设计模式,它提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式允许我们遍历集合中的每个元素,同时保持集合本身抽象,不需了解其内部结构。 在Java、C#等面向对象语言...

    petsgre#tutorial#迭代器模式1

    迭代器模式迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,并且又不用关系聚合对象的内部结构我们常用的数组的迭代方法即是迭代器例如:// 这里在不需要

    组合模式二叉树,前序、中序、后续,迭代器模式访问遍历

    在这个主题中,我们主要探讨了如何利用组合模式(Composite Pattern)构建二叉树,并通过迭代器模式(Iterator Pattern)来实现对树的遍历,包括前序、中序和后序遍历。这些是设计模式中的经典应用,对于理解和掌握...

    20迭代器模式.zip

    在"迭代器模式1"和"迭代器模式2"这两个文件中,很可能是对迭代器模式的进一步讲解和示例代码。通过阅读这些文件,你可以更深入地理解迭代器模式的实现细节,以及如何在实际项目中运用这一模式。这将有助于提高你的...

    【Java设计模式】(1)迭代器模式Iterator

    迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...

    65丨迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?1

    迭代器模式是一种行为设计模式,主要目的是在不暴露集合内部结构的情况下,允许外部代码遍历集合的所有元素。这种模式将遍历操作从集合类中分离出来,实现了数据结构和遍历机制的解耦。在大多数编程语言中,迭代器...

Global site tag (gtag.js) - Google Analytics