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
    }



你可能感兴趣的:(java,html,.net,Flex,Gmail)