1. 特点
(1)访问一个聚集中的元素而不必暴露聚集的内部。
(2)将迭代逻辑与聚集本身“解耦”。
2. 优点
(1)从一种聚集改变成另一种聚集,不需要修改客户端代码。
(2)改变迭代方式很容易,客户端不需要修改代码。
3. 缺点
(1)客户端容易误以为迭代是按照顺序进行的。实际情况取决于迭代逻辑,不一定与客户端认为的相一致。
(2)聚集元素没有特征,客户端必须知道是何种类型。
4. 代码架构
(1)抽象迭代子类:定义遍历元素的接口。
(2)具体迭代子类:实现遍历元素的接口。
(3)抽象聚集类:定义创建迭代子的接口。
(4)具体聚集类:实现迭代子的接口,返回一个迭代子实例。
5. Java中对命令模式的应用
(1)实现Collection接口的类。
6. 典型应用场景
(1)两个警察的购物篮:用不同的方式迭代不同的聚集。
参考文献:
1. 《设计模式》 板桥里人
2. 《Java与模式》 阎宏
没有评论:
发表评论