设计模式学习笔记——Visitor模式(行为)
需要解决的问题:
作用于某一个对象群时,对象本身不变化,对象可以通过与它交互的对象获取不同的行为。
具体事例:
当你去银行办理业务的时候,会发现银行内部开设了不同的窗口(普通业务、代办业务、基金保险等等),你可以根据实际的需要选择自己需要的窗口办理业务。比如:你去了普通窗口,工作人员会认为你就是来办理普通业务的;而你去了代办业务窗口,工作人员会认为你就是来办理代办业务的;否则你就失去错了窗口。
具体实施步骤:
1、定义一个对象群,此处容易误解,可以这样说:定义一个容纳所有业务需要的对象。
2、定义一个接口,处理对象群与固定对象的业务关系。
3、实现固定对象与对象群的对象交互,定义所有的业务实现。
代码模板:
对象群,即对象的所有业务需要。
public class Test {public static void main(String[] args) {Service a = new AService();Service b = new BService();Service c = new CService();Visitor visitor = new Visitor();a.doService(visitor);b.doService(visitor);c.doService(visitor);}}