Head First设计模式(九) 设计原则 迭代器和组合模式

迭代器模式:

迭代器模式提供一种方式,可以访问一个聚合对象中的原色而又不暴露其潜在的表示。

迭代器模式让我们遍历聚合元素,而不暴露其潜在实现

它也把遍历的任务,放在迭代器对象上,而不是聚合上,这样就简化了聚合的接口和实现,让责任放在合适的地方。

迭代器和集合:

Java Collection Framework 是一个类和接口的集合,包括ArrayList,Vectore,LinkedList,Stack,PriorityQueue。这些类中的每一个都实现java.util.Collection接口,这个接口包含一堆有用的方法,用来操纵一组对象。

HashMap是间接支持Iterator的几个类之一。

组合模式:

组合模式允许你将对象组合成树形结构来表现部分-整体层次结构。组合让客户可以统一处理个别对象和对象组合。

组合模式允许我们以树的形式建造对象结构,树的结点包含对象组合和个别对象

使用组合结构,我们可以对组合和个别对象应用同样的操作。换句话说,在大多数情况下我们可以忽略对象组合和个别对象之间的差别

单一责任原则:

一个类应该只有一个变化的原因。

类的每个责任都是一个潜在变化的区域。超过一个责任,意味着超过一个变化的区域。

这个原则指导我们要让每个类保持单一原则。

内聚(cohesion)用来度量一个类或模块完成单个目的或者责任时有多紧密。

当一个模块或一个类围绕一组相关功能来设计时,我们说它具有高内聚;反之,当它围绕一组相关不功能来设计时,我们说他具有低内聚。

比起单一责任原则,内聚是更普遍的概念,不过两者关系密切。遵守此原则的类容易有高内聚,比承担多个责任的低内聚的类更有可维护性。

要点:

  1. 迭代器允许访问聚合的元素,而不暴露其内部结构
  2. 迭代器将遍历聚合的工作取出并封装进另一个对象
  3. 当使用迭代器时,在支持遍历数据的操作方面,我们减轻了聚合的责任。
  4. 迭代器提供了一个遍历聚合项的共同接口,当我们编码使用聚合的项时,就可以使用多态
  5. Iterable接口让我们能够获取迭代器和使用Java的enchanced for loop。
  6. 我们应该致力于只为一个类分配一个责任
  7. 组合模式允许客户统一地处理组合和个别对象
  8. 组合结构内的任意对象称为组件。组件可以是其他组合或者叶子
  9. 实现组合模式有许多设计上的折衷。你要根据需要平衡透明和安全

策略:    封装可以互换的行为,并使用委托来决定使用哪个行为。

适配器: 改变一个或多个类的接口。

迭代器: 提供一种遍历对象集合而不暴露集合的实现的方式。

外观:     简化一群类的接口。

组合:     客户统一对待对象集合和个别对象。

观察者: 允许一群对象在某些状态变化时被通知。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值