14.1 场景问题
14.1.1 工资表数据的整合
考虑这样一个实际应用:整合工资表数据。
这个项目的背景是这样的,项目的客户方收购了一家小公司,这家小公司有自己的工资系统,现在需要整合到客户方已有的工资系统上。
客户方已有的工资系统,在内部是采用的List来记录工资列表;而新收购的这家公司的工资系统,在内部是采用的数组来记录工资列表;但是幸运的是,两个系统用来描述工资的数据模型是差不多的。
要整合这两个工资系统的工资数据,当然最简单的方式是考虑直接把新收购的这家公司的工资系统,也改成内部使用List来记录工资列表,但是经过仔细查看源代码,发现有很多的代码跟这个数组相关,还有很多是比较重要的逻辑处理,比如计算工资等,因此只好作罢。
现在除了要把两个工资系统整合起来外,老板还希望能够通过决策辅助系统来统一查看工资数据,他不想看到两份不同的工资表。那么应该如何实现呢?
14.1.2 有何问题
本来就算内部描述形式不一样,只要不需要整合在一起,两个系统单独输出自己的工资表,是没有什么问题的。但是,老板还希望能够以一个统一的方式来查看所有的工资数据,也就是说从外部看起来,两个系统输出的工资表应该是一样的。
经过分析,要满足老板的要求,而且要让两边的系统改动都尽可能的小的话,问题的核心就在于如何能够以一种统一的方式来提供工资数据给决策辅助系统,换句说来说就是:如何能够以一个统一的方式来访问内部实现不同的聚合对象。
相关推荐
16迭代器模式1
迭代器模式迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,并且又不用关系聚合对象的内部结构我们常用的数组的迭代方法即是迭代器例如:// 这里在不需要
设计模式之迭代器模式 设计模式之迭代器模式 设计模式之迭代器模式
迭代器模式提供一种可以遍历的聚合对象的方式聚合对象:存储数据迭代器:遍历数据代码实现定义迭代器定义聚合类private List list = new Arra
迭代器模式Demo
迭代器模式的示例代码和文档,学习迭代器模式的参考资料。
23种设计模式之迭代器模式对迭代器模式进行了简单的介绍,并附带了例子程序,和大家分享
设计模式的迭代器模式的例子,希望对大家有用~~~~~~~~
使用composite模式构成二叉树,并用迭代器模式封装访问,前序、中序和后序的遍历。JAVA 编写。 Main中直接运行
迭代器模式demo
C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载
设计模式-迭代器模式(讲解及其实现代码)
设计模式--迭代器模式java例子
设计模式之迭代器模式(新) 设计模式之迭代器模式(新)
迭代器(Iterator) 用意:可以顺序地访问一个集合中的元素而不必暴露集合中的内部表象。
迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 那么一般在什么时候才会用迭代器模式呢?当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候...