快速业务通道

智能数据使Swing保持简单 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
编辑数据的逻辑被封装在每个单元内的智能数据对 象中。其结果是用于实现复杂用户界面显示和交互的功能上灵活和可扩展的技术。

图 1. iData 技术的完整体系结构类图

智能数据使Swing保持简单 - 编程入门网

接下来,我们将讨论 iData 技术体系结构的每一层。同时,我们将构建假想的“自行车 商店(Bike Shop)”应用程序的一些代码片段以演示该技术。

智能数据使Swing保持简单(2)

时间:2011-04-16 IBM Jonathan Simon

DataObject

如上面所提到的,人们将 DataObject 定义为符合 JavaBean 的对象,该对象含有一些字 段和对应的 get[FieldName]() 和 set[FieldName]() 方法。通常,将数据字段按业务区域 组合在 DataObject 中。我们的示例“自行车商店”应用程序含有一个称为 Bicycle 的 DataObject 对象,该对象有大量字段( modelName 、 manufacturer 、 price 和 cost 等 等)以及相应的读(get)和写(set)方法。“自行车商店”中其它可能的 DataObject 对 象有 BicycleComponent 对象(带有类似于 Bicycle 的字段)和 Purchase DataObject 对 象(带有如 purchasorName 、 price 、 dateOfPurchase 等字段)。下面是“自行车商店 ”应用程序中 Bicycle DataObject 对象的部分代码的示例。

清单 1. 样本 DataObject

public class Bicycle {    //fields    double price = ...    String manufacturer = ...    ...    //default constructor    public Bicycle(){}    //accessors    public Double getPrice()    {       //sometimes its necessary to wrap primitives in related       //Object types...       return new Double(this.price);    }    public String getManufacturer()    {       return this.manufacturer;    }    ...    //mutators    public void setPrice(Double price)    {       this.price = price.doubleValue();    }    public void setManufacturer(String manufacturer)    {       this.manufacturer = manufacturer;    }    ... }

间接:iData 层

如上面所提到的,iData 层被细分为不可修改数据和可修改数据的功能。由于 MutableIData 接口继承了 ImmutableIData 接口,我们将从研究不可修改数据的功能开始。

只读智能数据的数据间接层(ImmutableIData)

ImmutableIData 接口是 iData 层的一部分;它表示不可修改 iData 间接。它由两个方 法和一个推荐的方法覆盖组成:

getData() 从 DataObject 返回一个具有类型的数据值。

getSource() 返回 DataObject 本身。

覆盖 toString() 方法返回 getData() 结果的 string 表示。

智能数据使Swing保持简单(3)

时间:2011-04-16 IBM Jonathan Simon

作为示例,让我们看一下 Manufacturer 字段的 ImmutableIData 实现。

清单 2. “自行车制造商”的 ImmutableIData 实现

public class BicycleManufacturerIData implements ImmutableIData {   //the DataObject   Bicycle bicycle = null;   public BicycleManufacturerIData(Bicycle bicycle)   {    this.bicycle = bicycle; //cache the DataObject   }   public Object getSource()   {    return this.bicycle; //this simply returns the DataObject   }   public Object getData()   {    //returns the manufacturer field from the DataObject.    //This is the main logical method of the indirection layer.    return bicycle.getManufacturer();   }   public String toString()   {    //create a safe to String method

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号