Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1531750
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 20:53:23

一起学习

前言

这两天写了一个研究Flex Java的例子,供大家参考,这个例子主要是出于以下几点考虑的

Remote Object)

load)

最佳性能时,系统只在网络上传输必要的数据,如显示用户清单时只传输user namedepartment name

而结构最优时,传输的却是规范的数据结构。

这个时候矛盾来了

Logic里组装这个UserListVO。但这种方法显然有个大的缺点,这个VO或对应的业务逻辑代码不可以共用,因为不同的地方会有不同的业务需求,比如有一个模块中会要显示用户的年龄。另一个方法就是,使用规范的数据结构,但只为这些数据结构中必要的栏位设值,如上面所说的,可以只为userVO.departmentVO.name设值,但其它栏位保持null,显然,这个VO的共用性也不好,因为我没法知道这个VO里面的栏位是否已经被设值了。

综上所说,所以我取上面两种方法的一个中间点来解决这个问题(如下图),即使用完整的数据结构来存储数据,但不是必要的数据不会被加载上来,如果要用时,可以通过Lazy Load的方式加载。如UserVO里有DepartmentVO,但在显示清单时不需要user对应的department信息,在编辑时才需要,所以我们可以在popup出用户编辑窗口的时候才在UserVOgetDepartmentVO()方法中加载相应的DepartmentVO

请参见附件中的class diagram for data model

CommandManager)

往往在开发的时候,标准的结构会多写很多代码,虽然结构很清晰,但老实说,对于我们的项目,好像不需要这样“清晰”,比如Cairngorm中有command, event, controller等等,这确实是一种清晰的结构,但写起来很麻烦,所以我下面设计了一种简化的结构来实现它(如下图)。

Class Diagram

请参见附件中的class diagram for command

Sequence Diagram

请参见附件中的sequence diagram for command pattern

关于Command Pattern,请参考以下的链接

这里,CommandManager就是那个Invoker。而com.novem.farc.command.UserSaveCommand.datagrid就是那个receiver

Why not Cairngorm Event or Command?

我们以查找一个user为例,来看看Cairngorm是怎么调用一个Command并返回结果的。

();

event.userId = userVO.id;

CairngormEventDispatcher.getInstance().dispatchEvent( event );

我们现在新的结构是这样实现的:

var command:CommandFindUser = new CommandFindUser();

command.userId = userVO.id;

NovemCommandManager.execute(command);

可以看出来,Cairngorm通过注册Event,并通过Event来传递输入参数,而我们自己的结构是将参数直接传递给Command,所以Cairngorm并没有给我们提供特别的方便,反而增加了不少麻烦的Event,而它提供的这种解耦,也并不实在。

Why not Cairngorm Model Locator?

Cairngorm Model Locator提供的其实是一种静态全局变量。

那么,谁都可以来改变这个Model Locator中的值,这显然是一个很危险的事。

如果大家也和我一样认为Cairngorm Model Locator就是一种静态全局变量的话,我想我在这里不用说得太多,只要去查一下静态全局变量的好处坏处就可以了。

Object方式去访问服务端

Why not Cairngorm Delegate?

老规矩,我们先来看看Cairngorm是怎么来调用服务端的

[newVO], this.result);

下载本文示例代码


Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究Flex Java 中小型项目的代码结构研究

阅读(267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~