目录
访问者模式
引言
访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素俩个主要组成部分,这些被访问的元素具有不同的类型,且不同的访问者可以对其进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型的元素增加新的操作。
定义
英文定义:“Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changeing the classes of the elements on which it operates.”。
中文定义:表示一个作用于某对象结构中的各个元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
访问者模式重要等级★☆☆☆☆ 中介者模式难度等级★★★★☆
模式结构图
访问者模式包含如下角色:
1)Visitor抽象访问者类:抽象访问者类需要定义对每一个具体元素的访问操作。
2)ConcreteVisitor 具体访问者类
3)Element抽象元素:提供一个以抽象访问者为参数的访问方法。
4)ConcreteElement 具体元素类
5) ObjectStruture 对象结构:用于存放元素对象。
实例
实例说明
顾客在超市中将选择的商品,如苹果,图书等放在购物车中,然后到收银员处付款。在购物过程中,顾客需要对这些商品进行访问,之后收银员计算价格的时候也要对商品进行访问。使用访问者模式来设计该购物过