3)访问者模式与组合模式联用
1.概述
在访问者模式中,包含一个用于存储元素对象集合的对象结构,可以使用迭代器来遍历对象结构,同时具体元素之间可以存在整体与部分关系,有些元素作为容器对象,有些元素作为成员对象,可以使用组合模式来组织元素。
2.结构图
4)总结
1.优点
-
增加新的访问操作很方便。
-
将有关元素对象的访问行为集中到一个访问者对象中,而不是分散在一个个的元素类中,类的职责更加清晰,有利于对象结构中元素对象的复用,相同的对象结构可以供多个不同的访问者访问。
-
让用户能够在不修改现有元素类层次结构的情况下,定义作用于该层次结构的操作。
2.缺点
-
增加新的元素类很困难。
-
访问者模式要求访问者对象访问并调用每一个元素对象的操作,这意味着元素对象有时候必须暴露一些自己的内部操作和内部状态,否则无法供访问者访问。
3.适用场景
-
一个对象结构包含多个类型的对象,希望对这些对象实施一些依赖其具体类型的操作,在访问者中针对每一种具体的类型都提供了一个访问操作,不同类型的对象可以有不同的访问操作。
-
需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作“污染”这些对象的类,也不希望在增加新操作时修改这些类。文章来源:https://www.toymoban.com/news/detail-858153.html
-
对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。文章来源地址https://www.toymoban.com/news/detail-858153.html
到了这里,关于设计模式之访问者模式(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!