本篇讲解Java设计模式中的迭代器模式,分为定义、模式应用前案例、结构、模式应用后案例、适用场景、模式可能存在的困惑和本质探讨7个部分。
定义
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示。
在新的分类方式中,迭代器模式被划分至类之间的交互类别中,其简化的是调用方对一个或一组对象遍历行为的交互。
模式应用前案例
在银行业务领域中,银行包含很多客户,而一个客户又可能包含多个账户。下面以这个案例进行说明。先来看一下未使用迭代器模式之前的代码实现。
public class Account {//账户类
private final String accountNumber;
private final double balance;
public Account(String accountNumber, double balance) {
this.accountNumber = accountNumber;
this.balance = balance;
}
// 省略其他属性和方法
public String getAccountNumber(){
return this.accountNumber;
}
public double getBalance(){
return this.balance;
}
}
public class Customer {//客户类
private final String name;
private final List accounts;
public Customer(String name) {
this.name = name;
this.accounts = new ArrayList();
}
public void addAccount(Account account) {
this.accounts.add(account);
}
// 遍历账户信息
public void displayAccounts() {
System.out.println("Customer: " + this.name);
//for (Account account : this.accounts) {//底层使用Iterator实现
for(int i=0;i