【Hibernate学习笔记】软件的模型

孙卫琴《精通Hibernate:Java对象持久化技术详解》 电子工业出版社


软件分析阶段:                                                  概念模型


软件设计阶段:    域模型(面向对象)<-----对象关系映射------>数据模型(面向关系)


1. 概念模型

    E-R图


2. 关系数据模型

    一个或多个表

    表的所有索引

    视图

    触发器

    表与表之间的参照完整性


3. 域模型

    构成域模型的基本元素是域对象(Domain Object),域对象还可叫做业务对象(Business Object,BO)。域对象可以代表业务领域中的人、地点、事物或概念。域对象分为以下几种。

    1)实体域对象

    采用JavaBean形式的实体域对象也称为POJO(Plain Old Java Object,简单的Java对象)。

    2)过程域对象

    如BusinessService

    3)事件域对象


    域对象之间的关系:

    1)关联(Association)

    关联指的是类之间的引用关系,关联可分为一对一、一对多和多对多关联。

public class Order
{
	private Long id;
	private String orderNumber;
	private double price;
	
	// ******
	private Customer customer;
	……
}

    关联还可以分成单向关联和双向关联。

    2)依赖(Dependency)

    依赖指的是类之间的访问关系。如果类A访问类B的属性或方法,或者类A负责实例化类B,那么可以说类A依赖类B。和关联关系不同,无需把类B定义为类A的属性。依赖关系在实体域对象之间不常见,但是过程域对象往往依赖实体域对象,因为过程域对象会创建实体域对象,或者会访问实体域对象的属性及方法。

    3)聚集(Aggregation)

    聚集指的是整体与部分之间的关系,例如人与兽就是聚集关系。

public class Person
{
    private Set hands = new HashSet();
    ……
}
    可见,聚集关系和关联关系在类的定义上有相同的形式,不过两者有不同的语义。对于聚集关系,部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。而对于存在关联关系的两个类,可以允许每个类的对象都单独存在,例如雇员和雇主就是这样的关联关系。

    4)一般化(Generalization)

    一般化指的是类之间的继承关系。

你可能感兴趣的:(【Hibernate学习笔记】软件的模型)