`
dodoflying
  • 浏览: 178612 次
社区版块
存档分类
最新评论

SmartTicket代码阅读笔记(二)

    博客分类:
  • j2me
阅读更多
接昨天的思路继续浅谈RMSCacheHandler的使用,RemoteModelProxy、RemoteModelRequestHandle和RemoteModel之间应用了代理模式。其中RemoteModelProxy充当了代理主题角色,RemoteModel是抽象主题角色,而RemoteModelRequestHandle是真实主题角色。
  • 代理模式(Proxy),给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。(参见RemoteModelProxy、RemoteModelRequestHandle和RemoteModel之间关系及UML图)。
在RemoteModelProxy中也就保存了一个对RemoteModelRequestHandle的引用,如下
java 代码
 
  1. private RemoteModelRequestHandler requestHandlerChain;  
  2.    private Preferences preferences = null;  
  3.    private Hashtable movies = new Hashtable();  
  4.   
  5.    public RemoteModelProxy(String serviceURL) throws ApplicationException {  
  6.        requestHandlerChain =   
  7.            new RMSCacheHandler(new HTTPCommunicationHandler(null,   
  8.                serviceURL));  
  9.   
  10.        return;  
  11.    }  
现在小节一下RemoteModelProxy的作用,它是一个代理主题角色,是它控制了RMSCacheHandler以及HTTPCommunicationHandler。

看看
RMSCacheHandler的constructor
java 代码
  1.      /** 
  2.      * Constructs a new RMSCacheHandler which is to be inserted in a RequestHandler chain. 
  3.      * @param nextHandler The next handler in the chain. 
  4.      * @param progressObserver The progress observer. 
  5.      */  
  6.     public RMSCacheHandler(RemoteModelRequestHandler nextHandler)   
  7.             throws ApplicationException {  
  8.         super(nextHandler);  
  9.   
  10.         rmsAdapter = new RMSAdapter();  
  11.   
  12.         return;  
  13.     } 
注释中提到了RequestHandler chain,责任链模式,恩,继续查资料
  • 责任链模式(Chain of Responsibility),很多对象由每一个对象对其下家的引用而连接起来形成一条链,请求在这个链上传递,直到链上的某一个对象决定处理此请求。
在RemoteModelProxy中有责任链模式典型的应用
java 代码
 
  1. requestHandlerChain =   
  2.             new RMSCacheHandler(new HTTPCommunicationHandler(null,   
  3.                 serviceURL));  
可以看到,RemoteModelProxy创建了两个处理者对象,并指定RMSCacheHandler的下家是HTTPCommunicationHandler,而HTTPCommunicationHandler没有下家,真正起作用处理的是HTTPCommunicationHandler对象。

 小节:
在这个看似简单的应用中运用了这么多的设计模式,不知道是sun的blueprint这么要求的还是普遍存在这样的设计?
不知道这样的学习方法是否正确,欢迎大家批判:)

to be continued......











分享到:
评论

相关推荐

    Java Smart Ticket 2.0

    学习Smart Ticket 2.0的源代码可以帮助你掌握这些问题的应对策略。 8. **性能优化**:考虑到移动设备的资源限制,了解如何优化代码以提高运行效率是J2ME开发中的重要一环。 通过对Smart Ticket 2.0的深度学习和...

    smartticket源代码

    《深入解析Smarticket源代码:探索J2ME与J2EE技术融合的奥秘》 Smarticket源代码,作为一个开放的学习资源,为开发者提供了一次深入理解J2ME和J2EE技术融合的绝佳机会。它不仅涵盖了J2ME的全貌,也涉及到了J2EE中的...

    S7-200 Smart入门笔记1-8 程序合集

    S7-200 Smart入门笔记1-8 程序合集 S7-200 Smart入门笔记1——流水灯 按钮 S7-200 Smart入门笔记1——流水灯 定时器 S7-200 Smart入门笔记2——读时钟 S7-200 Smart入门笔记3——呼吸灯 S7-200 Smart入门笔记4——...

    VB6与S7200-Smart源代码

    标题 "VB6与S7200-Smart源代码" 提供了我们即将探讨的核心主题:使用Visual Basic 6(VB6)与SIMATIC S7-200 SMART系列PLC进行通信的编程实例。这一主题涉及到两个主要部分:VB6编程语言和S7-200 SMART可编程控制器...

    SMART信息获取工具源代码(不用DDK)

    SMART(Self-Monitoring, Analysis, and Reporting Technology)是一种硬盘自我监测、分析和报告的技术,主要应用于现代...通过阅读和修改代码,你可以在实践中提升自己的编程技能,特别是在系统级编程和硬件交互方面。

    RT-Thread Smart的一些技术笔记

    RT-Thread Smart的一些技术笔记。【ART-Pi Smart】上手体验以及 vscode 插件使用。【ART-Pi Smart】使用 VS Code 开发 GUI 应用。【ART-Pi Smart】基于 FFmpeg + SDL2 实现视频播放。【ART-Pi Smart】基于 SDL2 进行...

    smartGwt学习笔记

    在SmartGWT的学习和开发过程中,...在进行此类定制时,开发者应保持代码的可读性和可维护性,避免过度依赖于特定的内部实现细节。同时,及时查阅官方文档、社区资源和已有的解决方案,可以帮助开发者更高效地解决问题。

    Smart Indent——VB代码自动缩进工具

    "Smart Indent——VB代码自动缩进工具"是一款专为Visual Basic (VB)开发者设计的辅助工具,旨在提升代码的可读性和维护性。在编程过程中,代码的缩进和格式化是至关重要的,它不仅使得代码看起来整洁,而且有助于...

    smart项目代码

    "Smart项目代码"是一个关于软件开发的专题,主要涉及的是项目的源码内容。在这个项目中,"src"目录通常是源代码的主要存放位置,这表明我们可能会深入到编程语言的细节,例如Java、Python、C++或其他语言的源文件。...

    VB_VBA代码自动缩进插件-Smart Indenter

    Smart Indenter是一款专为VB(Visual Basic)和VBA(Visual Basic for Applications)开发者设计的代码自动缩进插件。这款插件旨在提高代码的可读性和编写效率,通过自动调整代码的缩进,使代码格式更加规范,遵循...

    VB插件Smart Indent(代码自动排版)的源码

    《VB插件Smart Indent:实现代码自动排版的源码解析》 VB(Visual Basic)作为Microsoft开发的一种编程环境,深受程序员喜爱。在编写代码的过程中,代码的排版整洁度直接影响到代码的可读性和维护性。Smart Indent...

    Smart PDF阅读器

    它提供了多种标注工具,如高亮、下划线、删除线、文本框、箭头、图形等,让用户在阅读时能方便地做笔记和标记重要内容。同时,还可以插入文本、添加图片,使PDF文档更具交互性。 三、编辑功能 不同于一般的PDF阅读...

    S7-200SMART自定义标准库程序文件(含源代码+使用说明).zip

    源代码部分揭示了每个功能块的工作原理和实现细节,对于初学者来说,阅读源代码可以帮助理解PLC编程的基本逻辑和方法,对于有经验的工程师,源代码可以作为参考,快速实现特定功能。 使用说明通常会涵盖如何导入库...

    VBA代码自动对齐工具

    3. **行尾对齐**:将相同类型的语句(如赋值、声明或调用)的末尾对齐,使得代码看起来整齐有序,更容易阅读。 4. **注释对齐**:整理和对齐代码中的注释,使得注释与对应的代码行保持一致,提高代码注释的可读性。...

    FactoryIO案例西门子Smart PLC源代码 初学PLC宝贵资料

    在本文中,我们将深入探讨基于FactoryIO的西门子Smart PLC源代码,这对于初学者来说是一份极其宝贵的资源。FactoryIO是一款模拟工业自动化环境的软件,它为学习和测试PLC(可编程逻辑控制器)程序提供了强大的平台。...

    Linux服务器部署SmartChart低代码平台项目文件

    本文将详细讲解如何在Linux服务器上部署SmartChart低代码平台项目,该平台允许用户通过图形化界面快速构建应用程序,极大地提高了开发效率。我们将依据提供的文件列表进行操作,并参考给出的教程链接。 1. **环境...

    S7-200SMART 的运动控制(二)指令详细介绍+常见错误分析(图文).docx

    S7-200SMART是西门子推出的一款紧凑型PLC,其运动控制功能强大,尤其适合小型自动化设备的定位任务。本文将详细介绍S7-200SMART的运动控制指令,以及常见错误分析。 1. **AXISx_CTRL**指令:此指令用于初始化运动轴...

    smart组件学习笔记-流水线.rar

    Smart组件的使用极大地提高了代码的复用性和可维护性,降低了编程复杂度。 在流水线应用中,Smart组件特别有用。流水线通常涉及多个连续的工作站,每个站都有特定的任务,如物料搬运、装配、检测等。通过创建针对每...

    西门子s7-200 Smart plc modbus tcp 通讯代码(Java版)

    西门子s7-200 Smart plc modbus tcp 通讯代码(Java版), 是本人亲自调通的在S7-200 Smart plc 上经过测试的。具体操作是以PLC为modbus TCP 主站,Java语言开发出从站,与PLC 主站进行连接通讯,然后调用不同的函数...

    CO2二氧化碳浓度检测代码工程

    基于stm32f1的二氧化碳浓度测量代码(HAL库) 只需要单片机和二氧化碳传感器还有串口通信助手(电脑软件)正确连接就可以使用 二氧化碳传感器链接http://www.jxiotcity.com/zdcs/zdcs278.html 使用代码可以参考本人...

Global site tag (gtag.js) - Google Analytics