Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 访问者和组件模式之间的差异_Design Patterns_Components_Visitor Pattern - Fatal编程技术网

Design patterns 访问者和组件模式之间的差异

Design patterns 访问者和组件模式之间的差异,design-patterns,components,visitor-pattern,Design Patterns,Components,Visitor Pattern,我真的无法理解是什么让访问者设计模式不同于组件设计模式。两者似乎都只涉及由分立组件组成的容器 那么有什么区别呢?你是说复合设计模式吗?如果是这样,那么聚合部分中的两种模式都有相似之处 但是,在Visitor中,操作不是由聚合结构中的元素完成的。它们被封装在访问者对象中,用于检查组合的访问元素。它允许在不更改聚合类的情况下轻松添加操作 Visitor可以应用于不一定是复合结构的聚合。因此,访问者和复合可以是完全不同的模式

我真的无法理解是什么让访问者设计模式不同于组件设计模式。两者似乎都只涉及由分立组件组成的容器

那么有什么区别呢?

你是说复合设计模式吗?如果是这样,那么聚合部分中的两种模式都有相似之处

但是,在Visitor中,操作不是由聚合结构中的元素完成的。它们被封装在访问者对象中,用于检查组合的访问元素。它允许在不更改聚合类的情况下轻松添加操作

Visitor可以应用于不一定是复合结构的聚合。因此,访问者和复合可以是完全不同的模式