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

  • 相关阅读:
    剑指 Offer II 062. 实现前缀树-字母串树
    【迁移学习】
    Request方法的使用、JSON文件介绍、Python中的JSON数据以及获取到的JSON数据的解析。
    Hive存储格式之RCFile详解,RCFile的过去现在和未来
    彻底理解solidity中的事件
    7.SpringEL使用正则表达式
    Python爬虫之非关系型数据库存储#5
    通过Docker Compose安装MQTT
    kitti2bag 安装出现的各种错误
    架构——mysql、wiki、jira
  • 原文地址:https://blog.csdn.net/uesowys/article/details/139292447