3.5 细粒度的对象模型
2010-03-22 20:52
92 查看
Hibernate的一个主要目标就是支持细粒度的对象模型,细粒度的对象模型也是一个业务模型的一个最重要的需求。这就是我们选择POJOs的原因之一。
从字面上理解,细粒度就意味着比数据库表更多的类。例如,一个用户可能需要一个账单地址和一个家庭地址。在数据库中,我们可能拥有一个USER表,它包括数据列BILLING_STREET,BILLING_CITY,BILLING_ZIPCODE,HOME_STREET,HOME_CITY,HOME_ZIPCODE。
在我们的对象模型中,我们可能使用相同的方法,在User类中使用六个属性来表示两个地址。不过我们也可以单独使用Adress类,这样就可以在User类中只声明两个属性:billingAddress和homeAddress。
这种对象模型改进了内聚力,提高了代码重用性和易读性。在过去,许多ORM解决防范并不支持这种类型的映射。
Hibernate强调细粒度的对象模型对于实现类型安全的重要性。例如,许多人会把地址作为User类的一个字符串类型的属性。我们建议使用EmailAddress类来代替这种做法,因为它提供了更好的语义,而且能够添加新的行为。例如,它可以提供sendEmail()方法。
从字面上理解,细粒度就意味着比数据库表更多的类。例如,一个用户可能需要一个账单地址和一个家庭地址。在数据库中,我们可能拥有一个USER表,它包括数据列BILLING_STREET,BILLING_CITY,BILLING_ZIPCODE,HOME_STREET,HOME_CITY,HOME_ZIPCODE。
在我们的对象模型中,我们可能使用相同的方法,在User类中使用六个属性来表示两个地址。不过我们也可以单独使用Adress类,这样就可以在User类中只声明两个属性:billingAddress和homeAddress。
这种对象模型改进了内聚力,提高了代码重用性和易读性。在过去,许多ORM解决防范并不支持这种类型的映射。
Hibernate强调细粒度的对象模型对于实现类型安全的重要性。例如,许多人会把地址作为User类的一个字符串类型的属性。我们建议使用EmailAddress类来代替这种做法,因为它提供了更好的语义,而且能够添加新的行为。例如,它可以提供sendEmail()方法。
相关文章推荐
- 对象模型的细粒度划分
- 什么叫精粒度对象模型,什么叫粗粒度关系数据模型?
- 浏览器对象模型BOM之window
- Java中对象比较(第三个代码模型)
- 浏览器对象模型
- ADO.NET 实体数据模型 异常-“序列化类型为 XX 的对象时检测到循环引用”
- 数据访问接口体系及数据对象模型探讨--[1]
- 数据访问接口体系及数据对象模型探讨--[2]
- 使用对象的ADO模型
- 浅谈c++继承与对象模型
- OMT 对象模型、动态模型和功能模型
- 对象模型架构 sharepoint
- C++对象模型学习
- C++类对象内存模型与成员函数调用分析(上)
- 谈VC++对象模型
- C++对象模型(四)
- Delphi对象模型(Part VI)
- JavaScript---BOM模型之window对象,DOM模型的节点获取
- C++对象模型之RTTI的实现原理
- ECOM 对象模型