数据层组件设计与数据传递10

时间:2010-02-02 08:29:51  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:   // 使用该 ProductDALC 对象创建和填充一个 ProductEntity 对象。   // 此代码假设 ProductDALC 类有一个名为 GetProduct 的方法,   // 该方法使用 Product ID 作参数(本例中为 21),并返回一个   // 包含该产品的所有数据的 ProductEntity 对象。   ProductEntity aProduct = dalcProduct.GetPr...
  正文:定义自定义实体的优点如下:
  
  代码易读。要访问自定义实体类中的数据,可以使用有类型的方法和属性,如以下代码所示: // 创建一个 ProductDALC 对象
  ProductDALC dalcProduct = new ProductDALC();
  // 使用该 ProductDALC 对象创建和填充一个 ProductEntity 对象。
  // 此代码假设 ProductDALC 类有一个名为 GetProduct 的方法,
  // 该方法使用 Product ID 作参数(本例中为 21),并返回一个
  // 包含该产品的所有数据的 ProductEntity 对象。
  ProductEntity aProduct = dalcProduct.GetProduct(21);
  
  // 更改该产品的产品名称
  aProduct.ProductName = "Roasted Coffee Beans";
  
  在上述示例中,产品是一个名为 ProductEntity 的自定义实体类的一个实例。ProductDALC 类有一个名为 GetProduct 的方法,后者创建一个 ProductEntity 对象,将某个特定产品的数据填充到该对象,然后返回 ProductEntity 对象。调用应用程序可以使用 ProductName 等属性访问 ProductEntity 对象中的数据,并且可以调用方法以操作该对象。
  
  封装。自定义实体可以包含方法以封装简单的业务规则。这些方法操作缓存在实体组件中的业务实体数据,而不是访问数据库中的实时数据。请考虑以下示例: // 调用一个在 ProductEntity 类中定义的方法。
  aProduct.IncreaseUnitPriceBy(1.50);
  在上述示例中,调用应用程序对 ProductEntity 对象调用一个名为 IncreaseUnitPriceBy 的方法。在调用应用程序对 ProductDALC 对象调用相应方法,从而将 ProductEntity 对象保存到数据库之前,这一更改并不是永久性的。
  
  构建复杂系统的模型。在构建复杂域问题(在不同业务实体之间存在很多交互)的模型时,可以定义自定义实体类,从而将复杂性隐藏在经过很好定义的类接口的后面。
  本地化验证。自定义实体类可以在其属性存取器中执行简单的验证测试以检测无效的业务实体数据。
  专用字段。您可以隐藏不希望向调用程序公开的信息。
    定义自定义实体的缺点如下:
  
  业务实体集合。自定义实体表示的是单个业务实体,而不是一个业务实体集合。要保存多个业务实体,调用应用程序必须创建一个数组或一个 .NET 集合。
  序列化。您必须在自定义实体中实现自己的序列化机制。可以使用属性来控制实体组件的序列化方式,也可以通过实现 ISerializable 接口来控制自己的序列化。
  表示业务实体中的复杂关系和层次结构。您必须在业务实体组件中实现自己的关系和层次结构表示机制。如前面所述,DataSet 通常是实现这一目的的最简单方式。
  搜索和排序数据。您必须定义自己的机制来支持实体的搜索和排序。例如,可以通过实现 IComparable 接口以便将实体组件保存在一个 SortedList 集合或 Hashtable 集合中。
  部署。您必须在所有物理层部署包含自定义实体的程序集。
  支持企业服务 (COM+) 客户端。如果一个自定义实体将由 COM+ 客户端使用,则必须为包含该实体的程序集提供一个严格名称,并且必须在客户端计算机上注册。通常,该程序集安装在全局程序集缓存中。
  可扩展性问题。如果修改了数据库架构,则可能需要修改自定义实体类并重新部署程序集。
    定义带有 CRUD 行为的自定义业务实体组件
    在定义一个自定义实体时,可以提供方法以完全封装对基础数据访问逻辑组件的 CRUD 操作。这是比较传统的面向对象的方法,可能适用于复杂的对象域。客户端应用程序不再直接访问数据访问逻辑组件类,而是创建一个实体组件并对该实体组件调用 CRUD 方法。这些方法将调用基础的数据访问逻辑组件。
  
    图 10 所示为带有 CRUD 行为的自定义实体类的作用。
  
  
  图 10:带有 CRUD 行为的自定义业务实体组件的作用
  
    定义带有 CRUD 行为的自定义实体类的优点如下:
  
  封装。自定义实体可以封装由基础数据访问逻辑组件定义的操作。
  与调用程序的接口。调用程序必须只处理一个接口来保持业务实体数据。不必直接访问数据访问逻辑组件。
  专用字段。您可以隐藏不希望向调用程序公开的信息。
数据层组件设计与数据传递10》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12730.html


关键字:

关于《数据层组件设计与数据传递10》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td