headfirst设计模式笔记(9章节)--管理良好的集合:迭代器与组合模式

1:管理良好的集合

        有许多种方法可以把对象推起来成为一个集合,可以放进数组、堆栈、列表或者是散列表中。每一种都有它自己的优点和合适的使用时机,但总有一个时候,客户想要遍历这些对象,当他这么做的时候,你打算给客户看到你的实现?我们当然是希望不要,这太不专业了。本章节就是学习如何让客户遍历你的对象而又无法窥视你存储对象的方式,也将学习如何创建一些对象超集合,能够一口气就跳过某些让人望而生畏的数据结构。

2:对象村餐厅和对象村煎饼屋合并

        基于合并两个餐厅,所有菜单也需要合并,但是餐厅跟煎饼的菜单实现是不一样的。他们在菜单项的存储方式上花了很多的时间和代码,也许又许多其他代码依赖项。

        餐厅的菜单代码实现图2.1:(使用arraylist)

图2.1

        煎饼的菜单代码实现图2.2:(使用数组)

图2.2

迭代器代码(图2.3):

图2.3

3:会见迭代器模式

        如上图2.3所示,我们对遍历的封装已经凑效了,这个就是迭代器模式。

        关于迭代器模式,你所需要知道的第一件事情,就是它依赖一个名为迭代器的接口,有个这个接口,就可以为各种对象集合实现迭代器:数组、列表、散列表。

图3.1

4:定义迭代器模式

        迭代器模式提供一种方法顺序访问一个聚合对象的各个元素,而又不是暴露其内部的表示。

图4.1

5:定义组合模式

        组合模式:允许你讲对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

图5.1

6:设计箱的工具

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值