访客模式和策略模式有什么区别?
2022-09-04 06:03:20
我已经了解了这两种模式,但不了解这两种模式之间的差异。
我不知道场景,何时何地使用这些模式。
任何人都可以解释差异和用例吗?
我已经了解了这两种模式,但不了解这两种模式之间的差异。
我不知道场景,何时何地使用这些模式。
任何人都可以解释差异和用例吗?
主要区别在于,策略模式封装了一组相关行为,而访客模式封装了多个这样的组。
访客模式意图:
表示要对对象结构的元素执行的操作。Visitor 允许您定义新操作,而无需更改其操作的元素的类。
在以下情况下使用访客模式:
尽管访客模式提供了在不更改 Object 中的现有代码的情况下添加新操作的灵活性,但这种灵活性也带来了一个缺点。
如果添加了新的Visitable对象,则需要在Visitor & ConcreteVisitor类中更改代码。有一个解决方法可以解决此问题:使用反射,这将对性能产生影响。
有关更多详细信息,请参阅oodesign文章和源代码制作文章
策略模式意图:
定义一系列算法,封装每个算法,并使其可互换。策略允许算法独立于使用它的客户端。
策略允许您更改对象的内脏。
有关更多详细信息,请参阅下面的 SE 问题: