访问者模式

访问者模式定义

将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问模式。

访问者模式详解

使用场景

  1. 一个对象结构包含很多类对象,它们有不同的接口,而操作者想对这些对象实施具体的操作。
  2. 当一个对象里面有很多操作,而且这个对象被很多的应用使用,每个应用又只有自己的具体操作方式,可以使用访问者模式。

图解

25 访问者模式流程图.png

访问者模式优缺点

优点

  1. 扩展性好。能够在不修改对象结构中的元素的情况下,为对象结构中的元素添加新的功能。
  2. 复用性好。可以通过访问者来定义整个对象结构通用的功能,提高系统的复用程度。
  3. 灵活性好。访问者模式将数据结构与作用于结构上面的操作解耦,使得操作集合可以相对自由地演化而不影响系统的数据结构。

缺点

  1. 增加新的元素类困难。每增加一个新的元素,都要在每一个具体访问者类中增加相应的具体操作。
  2. 具体元素对访问者公布细节,破坏了对象的封装性。

访问者模式总结

将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。将数据结构和数据的操作相分离。