SmartTicket是sun的一个blueprint项目,我想通过学习它的设计,来提高自己的设计、编码水平。欢迎大家一起学习、或者提供好的建议:)
下图是它的UML设计,可以看到,设计是遵循MVC设计模式;毫无疑问,UIController类是一个控制器(Controller),ModelFacade充当的是模型(Model),它使用了Facade(门面)模式。
- 关于门面模式,门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行;使用时机,为复杂的系统提供一个简单的接口、子系统的独立性、层次化结构。
ModelFacade充当了与RemoteModelProxy、SynchronizationAgent、LocalModel打交道的门面(Facade),所以它保存着对其他三个对象的引用。
那么RemoteModelProxy、SynchronizationAgent、LocalModel这三者又分别代表什么呢?
很奇怪,sun的代码没有注释,也没有java doc
首先来看LocalModel
它保存着对RMSAdapter、Preferences、ProgressObserver的引用,看起来,它负责对手机RMS数据的管理,所以处于Model;
其中RMSAdapter采用了适配器(Adapter)模式。
- 关于适配器模式,是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。Adapter其实是中文变压器的意思。
所以,RMSAdapter就充当了一种适配器,提供了多种方法来操作RMS数据。
RMSCacheHandler中存在一个对于RMSAdapter的引用, 再看看RMSCacheHandler是做什么的?
从名字上看,是控制RMS缓存的,凡是涉及到操作RMS,都用到了适配器模式RMSAdapter。
从UML上来看,RMSCacheHandler其实是和RemoteModelProxy相关的,RemoteModelProxy中有一个对抽象类RemoteModelRequestHandle的引用,而RMSCacheHandler继承自RemoteModelRequestHandle。
- 大小: 69.7 KB
分享到:
相关推荐
Java Smart Ticket 2.0 是一个基于J2ME(Java Micro Edition)平台的示例项目,旨在为开发者提供一个类似于J2EE(Java 2 Platform, Enterprise Edition)上的jpetshop的实践学习案例。jpetshop是Java世界中广泛使用...
Smarticket源代码,作为一个开放的学习资源,为开发者提供了一次深入理解J2ME和J2EE技术融合的绝佳机会。它不仅涵盖了J2ME的全貌,也涉及到了J2EE中的关键组件如Servlet和EJB,同时融入了丰富的设计技巧和设计模式,...
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源代码" 提供了我们即将探讨的核心主题:使用Visual Basic 6(VB6)与SIMATIC S7-200 SMART系列PLC进行通信的编程实例。这一主题涉及到两个主要部分:VB6编程语言和S7-200 SMART可编程控制器...
SMART(Self-Monitoring, Analysis, and Reporting Technology)是一种硬盘自我监测、分析和报告的技术,主要应用于现代...通过阅读和修改代码,你可以在实践中提升自己的编程技能,特别是在系统级编程和硬件交互方面。
SmartGwt是一个强大的Java库,用于构建基于Web的用户界面,它提供了丰富的组件,包括ListGrid,一个功能强大的表格控件。在这个问题中,开发者遇到了在设置ListGrid为简单选择模式(SelectionStyle.SIMPLE)并使用复...
"Smart Indent——VB代码自动缩进工具"是一款专为Visual Basic (VB)开发者设计的辅助工具,旨在提升代码的可读性和维护性。在编程过程中,代码的缩进和格式化是至关重要的,它不仅使得代码看起来整洁,而且有助于...
RT-Thread Smart的一些技术笔记。【ART-Pi Smart】上手体验以及 vscode 插件使用。【ART-Pi Smart】使用 VS Code 开发 GUI 应用。【ART-Pi Smart】基于 FFmpeg + SDL2 实现视频播放。【ART-Pi Smart】基于 SDL2 进行...
"Smart项目代码"是一个关于软件开发的专题,主要涉及的是项目的源码内容。在这个项目中,"src"目录通常是源代码的主要存放位置,这表明我们可能会深入到编程语言的细节,例如Java、Python、C++或其他语言的源文件。...
Smart Indenter是一款专为VB(Visual Basic)和VBA(Visual Basic for Applications)开发者设计的代码自动缩进插件。这款插件旨在提高代码的可读性和编写效率,通过自动调整代码的缩进,使代码格式更加规范,遵循...
Smart Indent是一款为VB开发的AddIn插件,它的主要功能是自动对代码进行排版,使代码格式化,提高编程效率。本文将深入探讨Smart Indent的源码,解析其工作原理和实现方法。 首先,我们需要理解AddIn插件的机制。...
《S7-200SMART自定义标准库程序文件》是一个专门为S7-200SMART系列PLC设计的资源包,它包含了丰富的源代码和详细的使用说明,旨在帮助用户更高效、便捷地进行PLC编程。S7-200SMART是西门子推出的一款经济型小型PLC,...
Smart PDF阅读器是一款专为用户设计的高效、便捷的PDF文档处理工具,旨在提供优质的PDF阅读、编辑和转换功能。这款软件以其简洁的界面和强大的功能深受广大用户的喜爱,无论是在工作中还是学习中,都能大大提升PDF...
在本文中,我们将深入探讨基于FactoryIO的西门子Smart PLC源代码,这对于初学者来说是一份极其宝贵的资源。FactoryIO是一款模拟工业自动化环境的软件,它为学习和测试PLC(可编程逻辑控制器)程序提供了强大的平台。...
Smart组件的使用极大地提高了代码的复用性和可维护性,降低了编程复杂度。 在流水线应用中,Smart组件特别有用。流水线通常涉及多个连续的工作站,每个站都有特定的任务,如物料搬运、装配、检测等。通过创建针对每...
"Smart Indenter VBA代码自动对齐工具"就是这样一个专门针对VBA编程环境设计的实用工具,它能够帮助开发者快速、准确地对代码进行自动格式化和对齐,提升代码的可读性,从而提高开发效率。 该工具的主要功能包括: ...
本文将详细讲解如何在Linux服务器上部署SmartChart低代码平台项目,该平台允许用户通过图形化界面快速构建应用程序,极大地提高了开发效率。我们将依据提供的文件列表进行操作,并参考给出的教程链接。 1. **环境...
**JSpsmart下载上传源代码详解** JSpsmart是一款针对Java Web开发的文件上传和下载组件,它提供了简单易用的API,可以...同时,对于解决实际项目中遇到的文件处理问题,JSpsmart的源代码无疑是一个宝贵的参考资料。
在众多的PDF阅读器中,"绿色版-smartPDF阅读器"是一款轻量级且高效的应用程序,专为Windows操作系统设计,特别是针对Windows 10和Windows 7用户。它以其小巧的体积、无需安装的特性以及出色的兼容性而受到用户的青睐...
CIFLOG-Smart曲线计算子系统是一款专为网络测井处理解释打造的一体化软件工具,它基于JavaNetBeans开发平台,集成了强大的计算功能,允许用户对测井数据进行深度分析和解释。在本文中,我们将深入探讨该系统的架构、...