当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  面向对象的应用服务层设计(3)

 面向对象的应用服务层设计(3)

点击次数:27 次 发布日期:2008-11-26 12:32:32 作者:源代码网
源代码网推荐      数据实体的表示
源代码网推荐  
源代码网推荐    应用软件系统,从本质上来说,是计算机对现实世界的模拟。现实世界中的实体对象,在软件系统中,表现为需要处理的数据。在面向对象的系统中,这是通过"类"和"对象"来表示的。
源代码网推荐  
源代码网推荐    参考著名的"MVC"模式,类可以分成实体类(M)、控制类(C)、和边界类(V),分别代表了实体对象、控制和界面显示。系统中需要处理的数据,在面向对象的系统中,属于实体类部分。
源代码网推荐  
源代码网推荐    在考虑数据实体层的设计策略的时候,需要把握以下要点:
源代码网推荐  
源代码网推荐    ◆ 一致的数据表示方式。在一个系统中,数据的表示方式必须尽可能统一,同时,在处理单个数据和多个数据的时候,处理方式尽可能一致。
源代码网推荐  
源代码网推荐    ◆ 因为数据通常是需要存储到数据库中,因此,良好的映射方法是必需的。
源代码网推荐  
源代码网推荐    ◆ 处理好对象的粒度,即所谓的粗粒度对象、细粒度对象。
源代码网推荐  
源代码网推荐    一般例子
源代码网推荐  
源代码网推荐    考虑一个现实的例子,一个仓库中的产品(Product),在系统中可以使用如下定义:
源代码网推荐  
源代码网推荐  public class Product{public string Name; //名称
源代码网推荐   public decimal Price;//价格
源代码网推荐   public int Count;//数量
源代码网推荐   }
源代码网推荐   可以按照如下方法使用Product类:
源代码网推荐   Product p=new Product();
源代码网推荐   //……处理Product
源代码网推荐  
源代码网推荐    这是一个包含了三个属性的Product类的定义。为了便于说明,在这里,我们尽量将问题简化了。
源代码网推荐  
源代码网推荐     又例如,一张入库单可以使用如下定义:
源代码网推荐  
源代码网推荐  public class Form{public string ID; //入库单编号
源代码网推荐  public DateTime AddTime; //入库时间
源代码网推荐  public FormDetail[] FormDetails; //入库单明细
源代码网推荐  }
源代码网推荐  public class FormDetail
源代码网推荐  {
源代码网推荐  public Product InProduct; //入库产品
源代码网推荐  public int Count; //入库数量
源代码网推荐  }
源代码网推荐  
源代码网推荐    对于处理单个对象,通常采用上述的方法,但是,当我们需要处理相同类的一组对象,也就是处理一个对象集合的时候,就会有一些小小的麻烦。
源代码网推荐  
源代码网推荐    如前所述,我们希望在处理单个对象和对象集合的时候,处理的方式尽量统一,这对于软件开发的意义是很大的。常用的处理对象集合的方法有:
源代码网推荐  
源代码网推荐    ◆数组表示的方法
源代码网推荐  
源代码网推荐    例如,上面的例子中当一张入库单包含多条入库单明细的时候采用的方法。为了灵活性,也可以使用容器来,如Java中的Vector或C#的ArrayList(C#)。只是,在处理对象的时候,需要一个类型转换的操作。这个问题,在支持泛型的语言中不会存在,如使用C++的标准库的容器类。
源代码网推荐  
源代码网推荐    ◆ObjectCollection方法。这个方法同上面的方法类似,不同之处在于,为每个实体类设计一个Collection类。例如,可以为FormDetail设计一个FormDetailsCollection类(C#):
源代码网推荐  
源代码网推荐  public class FormDetailsCollection: ArrayList
源代码网推荐  {
源代码网推荐  public void Add(FormDetail detail)
源代码网推荐  {
源代码网推荐  base.Add(detail);
源代码网推荐  }
源代码网推荐  public new FormDetail this[int nIndex]
源代码网推荐  {
源代码网推荐  get{ return (FormDetail)base[nIndex];
源代码网推荐  }
源代码网推荐  }
源代码网推荐  }
源代码网推荐  
源代码网推荐    这么做的好处在于,在操作集合中的对象时,不必进行类型转换的操作。
源代码网推荐  
源代码网推荐    ◆数据集的表示方法。
源代码网推荐  
源代码网推荐    采用这种方法,通常是直接把从数据库查询中获取的数据集(Recordset)作为数据处理对象。这种方法在ASP应用程序中是非常常见的做法。这种做法简单,初学者很容易掌握,但是弊病也很多。
源代码网推荐  
源代码网推荐    EJB的方法
源代码网推荐  
源代码网推荐    在J2EE体系中,对实体对象的处理的典型方法是Entity Bean。J2EE中使用Entity Bean来表示数据,以及封装数据的持久化储存(同数据库的交互)。由于Entity Bean比较消耗资源,而且采用的是远程调用的方式来访问,因此,在需要传递大量数据,或者在不同的层次之间传递数据的时候,往往还会采用一些诸如"值对象"(Value Object)的设计模式来提升性能。关于J2EE中的设计模式的更多内容,读者可以参考《J2EE核心模式》一书。
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华