论坛首页 移动开发技术论坛

SmartTicket代码阅读笔记(一)

浏览 9440 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-08  
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
   发表时间:2007-01-09  
楼主能详细介绍这个项目吗?
希望楼主可以进一步的把自己的研究心得发表出来,
能贴个源代码上来(不想自己去下载)
我也想去研究研究。学习学习
0 请登录后投票
   发表时间: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 任务:
0 请登录后投票
   发表时间:2007-01-09  
引用
希望楼主可以进一步的把自己的研究心得发表出来

没问题,最近一段时间的安排就是这个
大家一起研究一下
0 请登录后投票
   发表时间:2007-01-09  
引用
能贴个源代码上来(不想自己去下载)

代码已经上传
0 请登录后投票
   发表时间:2007-01-10  
好不错
昨天想去下载了
Sun网络慢到掉砸。
超级郁闷。下载下来研究下
0 请登录后投票
   发表时间:2007-03-05  
关注中
0 请登录后投票
   发表时间:2007-03-05  
楼主可以给个联系方式么?我现在也在看这个东西!希望指教!我的MSN是childpp@hotmail.com
0 请登录后投票
   发表时间:2007-03-06  
jdk1.5与这个项目冲突么?
0 请登录后投票
   发表时间:2007-03-06  
我的邮箱是:dodoflying@gmail.com
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics