Java设计模式-活动对象与访问者

活动对象

Java设计模式中,活动对象是指一个对象始终处于活动的状态,该对象包括一个线程安全的数据结构以及一个活跃的执行线程。

如上所示,ActiveCreature类的构造函数初始化一个线程安全的数据结构(阻塞队列)、初始化一个活跃的执行线程,执行线程持续不断地从数据结构中获取需要处理的数据元素,执行业务逻辑

访问者

Java设计模式中,访问者是指一个对象接受其他对象的访问,受访者提供接待来访者的接口方法,来访者提供访问受访者的接口方法,来访者在受访者的内部访问受访者提供的信息,从OOP继承封装多态的特性看,体现出类对象的封装性,封装性提供类信息安全隔离的作用。

如上所示,访问者接口、访问者接口实现类、受访者接口、受访者接口实现类之间的继承关系、实现关系、依赖关系的类图

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Modem接口 受访者接口,提供accept方法接待来访者 Hayes类 Hayes类型受访者实现类,提供accept方法的具体实现,提供具体的接待内容 Zoom类 Zoom类型受访者实现类,提供accept方法的具体实现,提供具体的接待内容 |
| ModemVisitor接口 访问者接口类型,不定义方法,标识访问者的接口类型 HayesVisitor接口 Hayes类型访问者的继承接口,提供visit方法访问Hayes类型受访者 ZoomVisitor接口 Zoom类型访问者的继承接口,提供visit方法访问Zoom类型受访者 AllModemVisitor接口 Hayes类型访问者以及Zoom类型访问者的继承接口,同时继承两个接口,同时提供visit方法访问Hayes类型受访者以及Zoom类型受访者 |
| ConfigureForDosVisitor类 AllModemVisitor接口实现类,提供visit方法的具体实现,提供具体的访问内容 |
| ConfigureForUnixVisitor类 ZoomVisitor接口的实现类,提供visit方法的具体实现,提供具体的访问内容 |

相关推荐
摘星编程30 分钟前
深入解析迭代器模式:优雅地遍历聚合对象元素
设计模式·迭代器模式·软件开发·编程技巧·面向对象设计
程序员张33 小时前
Maven编译和打包插件
java·spring boot·maven
ybq195133454314 小时前
Redis-主从复制-分布式系统
java·数据库·redis
weixin_472339464 小时前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel
小毛驴8505 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
枯萎穿心攻击5 小时前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
DKPT5 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
Eiceblue6 小时前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
好奇的菜鸟7 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
m0_555762907 小时前
Matlab 频谱分析 (Spectral Analysis)
开发语言·matlab