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

SmartTicket代码阅读笔记(一)

    博客分类:
  • j2me
阅读更多
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
分享到:
评论
9 楼 dodoflying 2007-03-06  
我的邮箱是:dodoflying@gmail.com
8 楼 childpp 2007-03-06  
jdk1.5与这个项目冲突么?
7 楼 childpp 2007-03-05  
楼主可以给个联系方式么?我现在也在看这个东西!希望指教!我的MSN是childpp@hotmail.com
6 楼 childpp 2007-03-05  
关注中
5 楼 wuhua 2007-01-10  
好不错
昨天想去下载了
Sun网络慢到掉砸。
超级郁闷。下载下来研究下
4 楼 dodoflying 2007-01-09  
引用
能贴个源代码上来(不想自己去下载)

代码已经上传
3 楼 dodoflying 2007-01-09  
引用
希望楼主可以进一步的把自己的研究心得发表出来

没问题,最近一段时间的安排就是这个
大家一起研究一下
2 楼 wuhua 2007-01-09  
2001 年发布的第一版 Java 技术蓝图 Java Pet Store 就充分展示了 Sun 公司 J2EE 技术的优势。蓝图不仅为多层的、数据库驱动的电子商务应用程序提供了示例代码 , 而且提供了设计准则,示范了常用的模式。自第一版发布以来,对于想学习 J2EE 最新技术的开发人员来说,Java 技术蓝图已经成为最宝贵的资源和最佳实践。

Smart Ticket 蓝图增加了一个新的特性:移动性。它示范了如何创建一个实现电影订票功能的完整的端到端的移动商务系统 ,将 J2ME MIDP 用于无线前端,而将 J2EE 应用程序服务器和关系数据库用于后端。学习这个程序如何设计和构造将能极大地提高你对移动企业应用程序的难题和它们的解决方案的理解。

文章包含 2003 年 4 月发布的 Smart Ticket 的 Early Access 2.0 版的代码。 early-access 版中的屏幕截图和示例代码在最终版本中可能有细微的更改,但你从设计中学到的经验依然是有用的。Smart Ticket 1.2 仍然有效。它与我们现在讨论的版本有相同的模型和后台实现,因此,无论对过去还是未来的版本,很多详细解释都适用。除特别说明之外,Sun Microsystems 均对本文的所有源代码保留版权。

下载和安装

Smart Ticket 应用程序可从 java.sun.com/blueprints/code/" target=_blank>Sun's Blueprints网站获得。Zip 压缩文件包含源代码、Ant 构建脚本和预构建可配置的应用程序。

Smart Ticket 应用程序包含一个 J2ME 组件和一个 J2EE 组件。运行它要求一个 J2EE 应用服务器(比如 Sun 的 J2EE 参考实现,1.3 版或更高),和任一个带有 Internet 连接的兼容 MIDP 2.0的设备或者合适的仿真程序。如 Sun 的 J2ME Wireless Toolkit 2.0。 Smart Ticket 发行版包括了特别的说明,帮助构建和部署这个应用程序。现在开始:


   1.



      确保你已经安装以下资源:

          * JDK v1.4.1 或更高版本。
          * J2EE v1.3.1 或更高版本。
          * J2ME Wireless Toolkit 2.0 或更高版本。


   2.



      设置以下环境变量:

          * JAVA_HOME:JDK 安装目录 。
          * J2EE_HOME:J2EE RI 安装目录。
          * J2MEWTK_HOME:J2ME Wireless Toolkit 安装目录。


   3.



      启动 J2EE 服务器:





      J2EE_HOME/bin/cloudscape -start


      J2EE_HOME/bin/j2ee -verbose



   4.




      配置 J2EE 应用程序。 在 setup.xml 文件中,使用以下 setup 脚本调用 deploy Ant 任务:
1 楼 wuhua 2007-01-09  
楼主能详细介绍这个项目吗?
希望楼主可以进一步的把自己的研究心得发表出来,
能贴个源代码上来(不想自己去下载)
我也想去研究研究。学习学习

相关推荐

    Java Smart Ticket 2.0

    Java Smart Ticket 2.0 是一个基于J2ME(Java Micro Edition)平台的示例项目,旨在为开发者提供一个类似于J2EE(Java 2 Platform, Enterprise Edition)上的jpetshop的实践学习案例。jpetshop是Java世界中广泛使用...

    smartticket源代码

    Smarticket源代码,作为一个开放的学习资源,为开发者提供了一次深入理解J2ME和J2EE技术融合的绝佳机会。它不仅涵盖了J2ME的全貌,也涉及到了J2EE中的关键组件如Servlet和EJB,同时融入了丰富的设计技巧和设计模式,...

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

    smartGwt学习笔记

    SmartGwt是一个强大的Java库,用于构建基于Web的用户界面,它提供了丰富的组件,包括ListGrid,一个功能强大的表格控件。在这个问题中,开发者遇到了在设置ListGrid为简单选择模式(SelectionStyle.SIMPLE)并使用复...

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

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

    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 进行...

    smart项目代码

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

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

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

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

    《S7-200SMART自定义标准库程序文件》是一个专门为S7-200SMART系列PLC设计的资源包,它包含了丰富的源代码和详细的使用说明,旨在帮助用户更高效、便捷地进行PLC编程。S7-200SMART是西门子推出的一款经济型小型PLC,...

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

    Smart Indent是一款为VB开发的AddIn插件,它的主要功能是自动对代码进行排版,使代码格式化,提高编程效率。本文将深入探讨Smart Indent的源码,解析其工作原理和实现方法。 首先,我们需要理解AddIn插件的机制。...

    Smart PDF阅读器

    Smart PDF阅读器是一款专为用户设计的高效、便捷的PDF文档处理工具,旨在提供优质的PDF阅读、编辑和转换功能。这款软件以其简洁的界面和强大的功能深受广大用户的喜爱,无论是在工作中还是学习中,都能大大提升PDF...

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

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

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

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

    VBA代码自动对齐工具

    "Smart Indenter VBA代码自动对齐工具"就是这样一个专门针对VBA编程环境设计的实用工具,它能够帮助开发者快速、准确地对代码进行自动格式化和对齐,提升代码的可读性,从而提高开发效率。 该工具的主要功能包括: ...

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

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

    jspsmart下载上传源代码

    **JSpsmart下载上传源代码详解** JSpsmart是一款针对Java Web开发的文件上传和下载组件,它提供了简单易用的API,可以...同时,对于解决实际项目中遇到的文件处理问题,JSpsmart的源代码无疑是一个宝贵的参考资料。

    绿色版-smartPDF阅读器

    在众多的PDF阅读器中,"绿色版-smartPDF阅读器"是一款轻量级且高效的应用程序,专为Windows操作系统设计,特别是针对Windows 10和Windows 7用户。它以其小巧的体积、无需安装的特性以及出色的兼容性而受到用户的青睐...

    通过smart获取硬盘序列号等信息的C++源码

    SMART是一种内置在现代硬盘驱动器中的健康监测系统,它能够监控硬盘的运行状态,预测可能出现的故障,并提供关键数据。 在C++编程环境下,实现这个功能需要对Windows API或者ATA/SATA命令集有深入的理解。在Windows...

Global site tag (gtag.js) - Google Analytics