9.迭代器与组合模式
迭代器模式提供一种方法顺序访问一个集合对象中的元素,而又不暴露其内部的表示。迭代器模式让我们能游走于集合内的每一个元素,而又不暴露其内部的表示。把游走的任务放在迭代器上,而不是集合上。这样简化了集合的接口和实现,也让责任各得其所。
Java Collection Framework提供另一种迭代器接口,称为ListIterator。这个迭代器在标准的迭代器接口上多加了previous()
和一些其他的方法。任何实现了List接口的集合,都支持这样的做法。
一个类应该只有一个引起变化的原因。
类的每个责任都有改变的潜在区域。超过一个责任,意味着超过一个改变的区域。这个原则告诉我们,尽量让每个类保持单一责任。
内聚用来度量一个类或模块紧密地达到单一目的或责任。当一个模块或一个类被设计成只支持一组相关的功能时,我们说它具有高内聚;反之,当被设计成支持一组不相关的功能时,我们说它具有低内聚。
组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。
组合模式让我们能用树形方式创建对象的结构,树里面包含了组合以及个别的对象。使用组合结构,我们能把相同的操作应用在组合和个别对象上。换句话说,在大多数情况下,我们可以忽略对象组合和个别对象之间的差别。