21、访问者模式(Visitor)
来源:互联网 发布:无人机电调算法 编辑:程序博客网 时间:2024/05/22 06:50
21、访问者模式(Visitor)
访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构。其缺点就是增加新的数据结构很困难。—— From 百科
简单来说,访问者模式就是一种分离对象数据结构与行为的方法,通过这种分离,可达到为一个被访问者动态添加新的操作而无需做其它的修改的效果。简单关系图:
来看看原码:一个Visitor类,存放要访问的对象,
1
2
3
4
5
6
7
8
9
10
11
public
interface
Visitor {
public
void
visit(Subject sub);
}
public
class
MyVisitor
implements
Visitor {
@Override
public
void
visit(Subject sub) {
System.out.println(
"visit the subject:"
+sub.getSubject());
}
}
Subject类,accept方法,接受将要访问它的对象,getSubject()获取将要被访问的属性,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public
interface
Subject {
public
void
accept(Visitor visitor);
public
String getSubject();
}
public
class
MySubject
implements
Subject {
@Override
public
void
accept(Visitor visitor) {
visitor.visit(
this
);
}
@Override
public
String getSubject() {
return
"love"
;
}
}
测试:
1
2
3
4
5
6
7
8
9
public
class
Test {
public
static
void
main(String[] args) {
Visitor visitor =
new
MyVisitor();
Subject sub =
new
MySubject();
sub.accept(visitor);
}
}
输出:visit the subject:love
阅读全文
1 0
- 21、访问者模式(Visitor)
- 21、访问者模式(Visitor)
- 21、访问者模式(Visitor)
- 访问者(Visitor)模式
- 访问者模式(Visitor)
- Visitor(访问者模式)
- 访问者模式(Visitor)
- 访问者模式(Visitor)
- 访问者(Visitor)模式
- 访问者(Visitor)模式
- 访问者(visitor)模式
- 访问者模式(Visitor)
- 访问者模式(Visitor)
- 访问者模式(Visitor)
- 访问者模式(Visitor)
- 访问者模式(Visitor)
- 访问者模式(Visitor)
- 访问者模式(Visitor)
- 正则表达式(RegEx)
- java--面向对象之继承3
- phy子系统分析
- 查询linux的ftp的用户名和密码
- Netflix的设计微服务体系架构的最佳实践
- 21、访问者模式(Visitor)
- eclipse 配置连接hadoop集群
- idea+maven+ssm+shiro开发shiro权限登录,验证码
- 怎么和甲方交流
- 《C程序设计语言》【PDF】下载链接:
- LeetCode 26.Remove Duplicates from Sorted Array
- Spring Cloud云服务架构
- 初识EasyUI
- 22、中介者模式(Mediator)