模式概述
访问者模式是一种行为设计模式,它封装了某些施加于某种数据结构元素之上的操作。即使这些操作需要修改,也可以让接受这个操作的数据结构保持不变。
问题
教师节到了,李星云作为儿子的家长,想给学校老师每人送一份教师节礼物,他想来想去,决定给老师们送花和附有感谢的明信片。
但是他不知道该送哪些花,因为他不知道每种花都代表什么意义。而且学校老师有男有女,所授课程也不同,例如数学、物理、化学、生物、地理、语文、英语、历史、体育等,他不知道那种课程适合哪种花。
方案
访问者模式建议将新行为放入一个名为访问者的独立类中,而不是试图将其整合到已有类中。只需要将被执行操作的原始对象作为参数传递给访问者中的方法,让方法访问对象所包含的一切必要数据。
原创大约 5 分钟