return retObj;
}
public int size() {
return this.list.size();
}
}
package pattern;
import java.util.ArrayList;
import java.util.List;
/**
* 客户方已有的工资管理对象
*/
public class PayManager extends Aggregate {
/**
* 聚合对象,这里是Java的集合对象
*/
private List list = new ArrayList();
/**
* 获取工资列表
*/
public List getPayList() {
return list;
}
/**
* 计算工资,其实应该有很多参数,此处从简
*/
public void calcPay() {
// 计算工资,并把工资信息填充到工资列表中
// 为了测试,输入些数据进去
PayModel pm1 = new PayModel();
pm1.setPay(3000);
pm1.setUserName("张三");
PayModel pm2 = new PayModel();
pm2.setPay(5000);
pm2.setUserName("李四");
list.add(pm1);
list.add(pm2);
}
public Iterator createIterator() {
return new CollectionIteratorImpl(this);
}
public Object get(int index) {
Object retObj = null;
if (index < this.list.size()) {
retObj = this.list.get(index);
}
return retObj;
}
public int size() {
return this.list.size();
}
}
\pattern\SalaryManager.java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package pattern;
/**
* 被客户方收购的那个公司的工资管理类
*/
public class SalaryManager extends Aggregate {
/**
* 用数组管理
*/
private PayModel[] pms = null;
/**
* 获取工资列表
* @return 工资列表
*/
public PayModel[] getPays() {
return pms;
}
/**
* 计算工资,其实应该有很多参数,此处从简
*/
public void calcSalary() {
// 计算工资,并把工资信息填充到工资列表中
// 为了测试,输入些数据进去
PayModel pm1 = new PayModel();
pm1.setPay(2200);
pm1.setUserName("王五");
PayModel pm2 = new PayModel();
pm2.setPay(3600);
pm2.setUserName("赵六");
pms = new PayModel[2];
pms[0] = pm1;
pms[1] = pm2;
}
public Iterator createIterator() {
return new ArrayIteratorImpl(this);
}
public Object get(int index) {
Object retObj = null;
if (index < pms.length) {
retObj = pms[index];
}
return retObj;
}
public int size() {
return this.pms.length;
}
}
package pattern;
/**
* 被客户方收购的那个公司的工资管理类
*/
public class SalaryManager extends Aggregate {
/**
* 用数组管理
*/
private PayModel[] pms = null;
/**
* 获取工资列表
* @return 工资列表
*/
public PayModel[] getPays() {
return pms;
}
/**
* 计算工资,其实应该有很多参数,此处从简
*/
public void calcSalary() {
// 计算工资,并把工资信息填充到工资列表中
// 为了测试,输入些数据进去
PayModel pm1 = new PayModel();
pm1.setPay(2200);
pm1.setUserName("王五");
PayModel pm2 = new PayModel();
pm2.setPay(3600);
pm2.setUserName("赵六");
pms = new PayModel[2];
pms[0] = pm1;
pms[1] = pm2;
}
public Iterator createIterator() {
return new ArrayIteratorImpl(this);
}
public Object get(int index) {
Object retObj = null;
if (index < pms.length) {
retObj = pms[index];
}
return retObj;
}
public int size() {
return this.pms.length;
}
}
\user\Client.java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package user;
import pattern.Iterator;
import pattern.PayManager;
import pattern.SalaryManager;
public class Client {
public static void main(String[] args) {
// 访问集团的工资列表
PayManager payManager = new PayManager();
// 先计算再获取
payManager.calcPay();
System.out.println("集团工资列表:");
test(payManager.createIterator());
// 访问新收购公司的工资列表
SalaryManager salaryManager = n