数据层框架主要使用的设计模式有:
1. 数据访问对象 Data Access Object(1)抽象数据源:Oracle、SQL Server、LDAP......
(2)抽象数据操作CRUD
(3)提供一致的异常 DataAccessException,供DAO使用者捕获。其它特定的异常有NoDataFoundException、OptimisticLockException、ServiceLocatorException,它们都继承自DataAccessException。(4)提供基本的数据操作方法:
- findByPrimaryKey (Object pPrimaryKey)
- insert (ValueObject pValueObject)
- createValueObject ()
- update (ValueObject pValueObject)
- delete (ValueObject pValueObject)
- 普通Java类:好处就是实现比较简单。
- EJB:好处是可以利用EJB 容器的特性:事务管理、声明式访问控制、EJB资源池。
2. 值对象 Value Object值对象模式的产生的初衷是为了最大限度地减少(减少到一次)对实体EJB的远程调用。值对象的特性如下:
(1)作为数据的逻辑视图(表示实体之间一对一或一对多的关系)。
(2)作为唯一能够在表示层和数据层之间来回传递的数据(因此值对象必须是可序列化的)。
(3)值对象提供如下状态属性:
- insertFlag
- updateFlag
- deleteFlag
- rowVersion (乐观锁机制,见后文介绍)
(6)值对象的数量要适当,不要有过多“毛细值对象”。
3. 服务定位器 Service Locator
服务定位器通过缓存EJBHome接口和DataSource对象,从而减少JNDI查找次数。
服务定位器模式实现一般采用单例模式。
没有评论:
发表评论