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

相关推荐
WZTTMoon4 小时前
Spring 配置解析与 @Value 注入核心流程详解
java·spring boot·spring
聪明努力的积极向上4 小时前
【C#】System.Text.Encoding.Default 属性在framework和.netcore中的区别
开发语言·c#·.netcore
程序定小飞4 小时前
基于springboot的健身房管理系统开发与设计
java·spring boot·后端
wxin_VXbishe4 小时前
springboot在线课堂教学辅助系统-计算机毕业设计源码07741
java·c++·spring boot·python·spring·django·php
夕泠爱吃糖4 小时前
template关键字
开发语言·c++·template
ceclar1234 小时前
C++文件操作
开发语言·c++
信仰_2739932435 小时前
RedisCluster客户端路由智能缓存
java·spring·缓存
兰雪簪轩5 小时前
仓颉语言内存布局优化技巧:从字节对齐到缓存友好的深度实践
java·spring·缓存
高一要励志成为佬5 小时前
【C++】vector的迭代器失效问题,(什么是迭代器失效,为什么会产生迭代器失效,怎么避免迭代器失效问题)
开发语言·c++
CaracalTiger5 小时前
本地部署 Stable Diffusion3.5!cpolar让远程访问很简单!
java·linux·运维·开发语言·python·微信·stable diffusion