访问者模式:上门服务的"贱"模式。有两个角色
访问者 和 爷
来看爷,访问者总得做点什么?Visitor.visit(爷)
爷也要,摆个姿态接受下 爷.Accept(Visitor){Visitor.visit('爷')}
具体做什么?访问者说了算,可以理发、修脚、按摩、盘道,随便了。
也只要写个Accecpt,访问者,提供服务方法
爷.Accept(访问者)
{
访问者.Visit(爷);
}
正经点:
访问者模式的目的在于,不改变类的前提下,为类增加一个新的操作。
当然,也有这样说的,在不改变一个层次结构中的类的情况下,为一个层次结构定义一个新的操作。
实现的机制是,为访问者定义一个接口(抽象类也行),并将Accept()方法计算入到" 爷"的层次结构中。
利用两次分发机制()访问者先调用"爷"的Accept(Visitor)方法(注意:Visitor访问者是参数),然后,接收
了Accept(Vistor)方法调用的对象将调用结果用一个Visit(this)方法反馈给访问者。(您给的礼,我笑纳了。)
Visit()方法定义在Visitor中。举个例子,理发的方法(Visit),当然理发师掌握着(Visitor)
我家大门常打开,欢迎你来这里…….
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。