首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-10-25 
业务层代码复用的一点建议传统的编写业务层的service类是为每个实体对象生成一个DAO,然后再每个实体DAO对

业务层代码复用的一点建议
    传统的编写业务层的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   了解了解。。。。。

热点排行