为什么公开底层表示的迭代器不好?

Wad*_*das 5 java iterator design-patterns

迭代器模式定义:提供一种顺序访问聚合对象元素的方法,而不会暴露其底层表示.维基

暴露基础表示的后果是什么?

提供更详细的答案:迭代器模式如何阻止这种情况?

anu*_*ava 5

根据:http://www.oodesign.com/iterator-pattern.html

迭代器模式的想法是负责访问和传递集合的对象并将其放在迭代器对象中.迭代器对象将保持迭代的状态,跟踪当前项并有一种方法来识别下一个要迭代的元素.

您可以从这种模式中获得的好处很少:

  1. 使用Iterator模式代码设计器可以决定是否允许单向迭代(仅使用next())或允许反向迭代(使用ListIterator中的prev()).
  2. 是否允许删除对象,如果是,那么如何.
  3. 移除物体时保持内部清洁.
  4. 它允许您公开遍历集合的常见机制,而不是期望您的客户端理解底层集合.