Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1552496
  • 博文数量: 157
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4116
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-14 18:26
文章分类

全部博文(157)

文章存档

2014年(67)

2013年(90)

分类: Java

2014-01-13 13:35:33

Visitor模式也叫访问者模式,是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作比如有一个公园,有一到多个不同的组成部分;该公园存在多个访问者:清洁工A负责打扫公园的A部分,清洁工B负责打扫公园的B部分,公园的管理者负责检点各项事务是否完成,上级领导可以视察公园等等。也就是说,对于同一个公园,不同的访问者有不同的行为操作,而且访问者的种类也可能需要根据时间的推移而变化(行为的扩展性)。根据软件设计的开闭原则(对修改关闭,对扩展开放),我们怎么样实现这种需求呢?下面,武汉软件研发展开详细描述。


java设计模式之访问者模式


  1) 访问者角色(Visitor):

  为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。

  2) 具体访问者角色(ConcreteVisitor):

  实现每个由访问者角色(Visitor)声明的操作。

  3) 元素角色(Element):

  定义一个Accept操作,它以一个访问者为参数。

  4) 具体元素角色(ConcreteElement):

  实现由元素角色提供的Accept操作。

  5) 对象结构角色(ObjectStructure):

  这是使用访问者模式必备的角色。它要具备以下特征:能枚举它的元素;可以提供一个高层的接口以允许该访问者访问它的元素;可以是一个复合(组合模式)或是一个集合,如一个列表或一个无序集合
阅读(1981) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~