访问者模式

来源:互联网 发布:python快速建站 局域网 编辑:程序博客网 时间:2024/05/01 23:54

首先我们来看看代码,最后我会给出这个模式的作用。如果我们想把方法从数据结构中抽取出来。像下面的代码所示,person是个很简单的类,其中有一个接受动作的方法,动作类是抽象类,其下有很多实现类。当我们决定调用哪一个方法的时候,传入对应一个子类,就会调用那个个子类的方法。其中对应的方法中传入了person类,得到了person的信息,可以做一些操作了。

 

 

现在我们来考虑如果有几种人的情况,我们把person抽象化。

 

 

这里人的种类,相对于我们可能加入的关于人的动作是稳定的。所以我们用人来接收各种方法。

 

访问者模式--表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

 

访问者模式适用于数据结构相对稳定的系统。访问者模式使得数据结构和操作相对独立,数据结构和算法之间可以独立开发,把数据结构和作用于数据结构上的操作之间的耦合解开,使得操作集合可以自由的演化。

目的是要把处理从数据结构分离开来。如果系统有比较稳定的数据结构,有比较容易变化的算法,那么使用访问者模式比较合适,因为访问者模式使算法的增加变得容易。增加新的操作很容易,只要增加一个访问者就可以了。