问题 单项选择题

图6—3所示的UML类图所示意的设计模式的意图是______。该设计模式的优点是______。


A.减少了要处理的对象数目,如果对象能够持续,还可以减少内存和存储设备
B.保持封装的完整,简化了返回到初始状态所需的操作
C.可以在运行时添加或删除产品,减少了子类的生成和使用
D.支持集合的不同遍历,简化了集合的接口

答案

参考答案:D

解析: 图6-3所示的UML类图所描绘的设计模式中的迭代器(iterator)模式。其设计意图是提供一种方法顺序访问一个集合对象中各个元素,而又不需暴露该对象的内部表示。该设计模式的优点有:①支持集合的不同遍历;②简化了集合的接口等。在以下情况中,应该使用Iterator设计模式:①在不开放集合对象内部表示的前提下,访问集合对象内容;②支持集合对象的多重遍历;③为遍历集合中的不同结构提供了统一的接口等。
备忘录(Memento)模式的设计意图是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。Memento模式可以保持对象状态的“快照(snapshot)”,这样对象可以在不向外界公开其内容的情况下返回到它的最初状态。该设计模式的优点有:①保持封装的完整;②简化了返回到初始状态所需的操作等。
享元(Flyweight)模式的设计意图是运用共享技术有效地支持大量细粒度的对象。该设计模式的优点有:①减少了要处理的对象数目;②如果对象能够持续,还可以减少内存和存储设备等。
原型(Prototype)模式的设计意图是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。该设计模式的优点有:①可以在运行时添加或删除产品;②通过改变值指定新对象;③通过改变结构指定新对象;④减少了子类的生成和使用;⑤可以用类动态地配置应用程序等。

单项选择题
不定项选择