大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
动机
在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.
使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式
模式定义
提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.
实例
结构
要点总结
- 迭代抽象:访问一个聚合对象的内部不需要了解他的具体实现细节
- 迭代多态:为遍历不同的集合结构提供一个统一的接口.从而支持同样的算法在不通的集合结构上进行操作
- 迭代器的健壮性考虑:遍历的同时更改迭代器所在的集合结构,会导致问题
笔记
- 虚函数也有成本
- 模板也是一种多态技术 但是模板是编译时多态 编译器在编译的时候会辨别调用的那些代码
- 由于时代变化 面向对象模板设计结构已经老了
- 上述内容讲的是面向对象式的迭代器
- C++98之后标准的迭代器式使用模板描述的
- 其他语言好多有不支持编译时模板 所以好多语言java C#等都式用的面向对象迭代器
- 思想都是通过迭代器来隔离算法和容器 但是实现的技术已经发生了变化
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168499.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...