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方法的具体实现,提供具体的访问内容 |

相关推荐
不急不躁12315 分钟前
Android16 给应用默认获取权限
android·java
CoderCodingNo21 分钟前
【GESP】C++五级真题(数论考点) luogu-B3871 [GESP202309 五级] 因数分解
开发语言·c++
C雨后彩虹27 分钟前
5G网络建设
java·数据结构·算法·华为·面试
froginwe1127 分钟前
NumPy 字符串函数
开发语言
wildlily842733 分钟前
C++ Primer 第5版章节题 第九章
开发语言·c++
码界奇点33 分钟前
基于Spring Boot的后台管理系统设计与实现
java·spring boot·后端·车载系统·毕业设计·源代码管理
爱敲点代码的小哥33 分钟前
json序列化和反序列化 和 数组转成json格式
java·前端·json
特立独行的猫a34 分钟前
c++弱引用指针std::weak_ptr作用详解
开发语言·c++·智能指针·弱指针·weak_ptr
零度念者36 分钟前
Java IO/NIO 深度解析:从底层原理到高性能图片网关实战
java·nio