![]() |
1
2
虽然这两种设计模式是互补的,但它们的意图不同: 根据这一原则,访问者不在那里存储持久数据。因此,是的,任何可能特定于某类员工的属性都应保留在组合中。 事实上,你有大量的属性(无论是特定于某个员工的派生属性还是所有员工的共同属性),这不会改变原则。访问者模式旨在通过使用不同的访问成员函数(每个不同的类一个)来处理组合中的不同类型的元素。 唯一不便的是,当您向复合结构中添加新类时,您需要相应地修改访问者。 您可以在访问者中放入一些值,只是暂时的,以执行操作。例如:
实施问题: 访问者模式的实现不完整。您没有通过复合结构的访问逻辑。 看看您打算使用访问者的方式,我想知道您是否不想为对象添加属性/函数,而不是浏览它们。 我建议你看看 decorator pattern ,更适合这种用法:它是一种结构模式,扩展了现有的类家族。 |
![]() |
2
2
问题是从
方式
请记住,在一般情况下
同样,如果将单个结果保存在属性中,如在
通常
因此,我可以想象访客创建了销售人员的区域列表:
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |