`
hacker47
  • 浏览: 336327 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

FLEX提高篇--------dto是flex应用系统的最佳实践之一

阅读更多
本文转自http://www.blogjava.net/bjwulin/archive/2008/06/10/206923.html

1、为每一个java dto类定义一个对等的AS类
AS:
package datasource.dto {
    [RemoteClass(alias="datasource.dto.CustomerDTO")]
    public class CustomerDTO {
        public  var firstName : String;
        public  var birthDate: Date;
    }
}

JAVA:
public class CustomerDTO {
    public String firstName;
    public java.util.Date birthDate;
}    

2、让AS的DTO类的所有属性都是绑定的,因此,最好是在类的前面加上绑定的元数据
package datasource.dto {
    [RemoteClass(alias="datasource.dto.CustomerDTO")]
    [Bindable]
    public class CustomerDTO {
        public  var firstName : String;
        public  var birthDate: Date;
    }
}

3、为Server和Client的Dto类都设定UUID的属性,便于在表格等集合中排序使用,比如,人员信息中,按性别排序,由于性别是不唯一的数据,因此必须加上性别和UUID的组合排序,在性能上,也会有所提升。

4、尽量用getter和setter方法代替Public属性。

5、可以考虑做Dto的扩展类来实现一些定制的目的,比如在类里面有个计算列,我们可以扩展一个类:
package datasource.dto {
    [RemoteClass(alias="datasource.dto.CustomerDTO")]
    public class PortfolioItemExtendedDTO extends PortfolioItemDTO

    public function get unrealizedGain():Number {
        return lastPrice - costBasis; 
    }

   而不是在表格的ItemEditEnd事件来实现相似功能。

6、如果存在计算列,可以考虑计算列的绑定。可以写一个无效的setter方法。
Bindable(event="propertyChange")]
    public function get unrealizedGain():Number {
        return lastPrice - costBasis; 
    }
    public function set unrealizedGain(value:Number):void {
        // Ain't gonna happen, but Flex won't consider Bindable without the setter
    }



分享到:
评论
1 楼 szluckyzhang 2010-04-25  
该flex vo对象,需要对应java后台一个javabean对象。我想知道,从flex vo到javabean对象,属性是如何对应和赋值的?应该不是根据属性名称来完成的,那么是通过什么机制,什么方法来完成的呢?望解答一二,谢谢。
mailto:cngdzql@gmail.com

相关推荐

Global site tag (gtag.js) - Google Analytics