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

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

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

由此,我们在编写DAO层代码时,可设计一个BaseDAO类,抽象出最顶层的公有行为。
public void save(Object entityObj);
public void update(Object entityObj);
public Object findById(Class cls, Integer id);
public List<Object> findByProperty(String hql, Object property);
public List<Object> findByHql(String hql, Object[] values);
public List<Object> findBySql(String sql, Object property);
public List<Object> findBySql(String sql, Object[] values);


在业务层,编写服务组件时,也可以抽象出一个BaseService类,集合公有行为。
public class BaseService {
private BaseDAO baseDAO;

// setter method
// 共有方法
}


其他业务层服务组件,可以
extends BaseService
达到公有复用。

当然,配置文件需配置bean的父子关系.

<bean id="" class="" parent="BaseService"></bean>


这当然只是一种很简单的方法,你也可以从中抽象和重构出更简单更短小的设计。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值