域模型
域模型是面向对象的,在面向对象术语中,域模型也称为设计模型。域模型由以下内容组成:
- 具有状态和行为的域对象
- 域对象之间的关系
关联、依赖、聚集、一般化
域对象
域对象可以代表业务领域中的人、地点、事物或概念。域对象分为以下几种:
实体域对象:业务领域的名词
- 实体对象可以代表人、地点、事物或概念。例如客户、订单、商品等作为实体域对象。
- 在Java EE应用中,这些名词可以作为实体EJB。
- 对于普通的Java应用,这些名词可以作为包含状态和行为的JavaBean。采用JavaBean形式的实体域对象也称为POJO(Plain Old Java Object)。
- 为了使实体域对象与关系数据库表中记录对应,可以为每个实体域对象分配惟一的OID(Object Identifier,即对象标识符),OID是关系数据库表中的主键(通常为代理主键)在实体域对象中的等价物。
过程域对象:业务领域的动词
- 过程域对象代表应用中的业务逻辑或流程。它们通常依赖于实体域对象。
- 可以把业务领域中的动词,例如客户发出订单、登入应用等作为过程域对象。
- 在Java EE应用中,它们通常作为会话EJB或者消息驱动EJB。
- 在非Java EE应用中,它们可作为常规的JavaBean,具有管理和控制应用的行为。
- 过程域对象也可以拥有状态,例如在J2EE应用中,会话EJB可分为有状态和无状态两种类型。
事件域对象:业务领域中的事件
事件域对象代表应用中的一些事件(如异常、警告或超时)。这些事件通常由系统中的某种行为触发。
例如在多用户环境中,当一个客户端程序更新了某种实时数据,服务器端程序会创建一个事件域对象,其他正在浏览相同数据的客户端程序能够接受到这一事件域对象,随即同步刷新客户界面。、
域对象的持久化概念
狭义的理解,“持久化”仅仅指把域对象永久保存到数据库中
广义的理解,“持久化”包括和数据库相关的各种操作:
- 保存:把域对象永久保存到数据库中。
- 更新:更新数据库中域对象的状态。
- 删除:从数据库中删除一个域对象。
- 加载:根据特定的OID,把一个域对象从数据库加载到内存中。
- 查询:根据特定的查询条件,把符合查询条件的一个或多个域对象从数据库加载到内存中。