读书人

业务层代码复用的1点建议

发布时间: 2012-10-25 10:58:57 作者: rapoo

业务层代码复用的一点建议
传统的编写业务层的service类是为每个实体对象生成一个DAO,然后再每个实体DAO对应的service类中注入DAO属性作为服务层组件。这样做代码的可读性很好,层次分明,逻辑清晰。是一种较好的设计方式。

如果考虑到代码软件最本质的特征-复用。减少不必要的编写。我们可以充分考虑Java语言的特征,诸如反射、多态、继承,以达到最大程度的重构。

由此,我们在编写DAO层代码时,可设计一个BaseDAO类,抽象出最顶层的公有行为。



这当然只是一种很简单的方法,你也可以从中抽象和重构出更简单更短小的设计。public class BaseDaoHibernateImpl extends HibernateDaoSupport implements IBaseDao {@Autowiredpublic final void setupSessionFactory(SessionFactory sessionFactory) {setSessionFactory(sessionFactory);}@Overridepublic void saveOrUpdate(Object entity) {getHibernateTemplate().saveOrUpdate(entity);}@Override@SuppressWarnings("unchecked")public void saveOrUpdateAll(Collection entities) {getHibernateTemplate().saveOrUpdateAll(entities);}@Overridepublic void delete(Object entity) {getHibernateTemplate().delete(entity);}@Overridepublic <T> List<T> loadAll(Class<T> entityClass) {return getHibernateTemplate().loadAll(entityClass);}@Overridepublic <T> T get(Class<T> entityClass, Serializable id) {return getHibernateTemplate().get(entityClass, id);}}


这样貌似查询功能很简单吧。 47 楼 liliugen 2011-04-07 这个帖子还行 48 楼 lijie1819 2011-05-18 看到LZ的设计思想,感觉和抽象工厂模式有点相像。 49 楼 zk7019311 2011-05-26 了解了解。。。。。

读书人网 >软件架构设计

热点推荐