泛型类的继承

//使用泛型化的Dao接口
public interface IBaseDao<T>{

public void save(T t);

public List<T> getAll();
...
}

//实现类XXBaseDaoImpl在实现IBaseDao<T>时,也需要提供泛型化的参数T
public class UserDaoImpl<User> implements IBaseDao<User>{

public void save(User t);

public List<User> getAll();

...
}


其实这样还看不出好处,如果有AbstractBaseDao则能看出


public interface IBaseDao<T>{
public void save(T t);
public List<T> getAll();
...
}
public abstract class AbstractBaseDao<T> implements IBaseDao<T>{
public void save(T t){
...
}
public List<T> getAll(){
...
}
...
}

则实现类什么都不写即可,
public class UserDaoImpl extends AbstractBaseDao<User>{

}

public class OrderDaoImpl extends AbstractBaseDao<Order>{

}

业务层接口也可以采用类似dao的写法:
public interface IBaseService<T>{
public void save(T t);

public List<T> getAll();
}

//业务层实现类采用Base<U,T extends BaseModel>的形式
public class BaseServiceImpl<E, D extends IBaseDao<E>> implements IBaseService<E> {
//Dao接口变量,
protected D dao;

public void save(E e){
...
}


public List<E> getAll(){
....
}
//对dao接口变量进行setter和getter设置
public void setDao(D dao) {
this.dao = dao;
}

public D getDao() {
return dao;
}
}
public class Base<U,T extends BaseModel>还有这种用法
要求泛型T必须extends BaseModel


[size=large][color=red][b]@Inherited的作用[/b][/color][/size]
@Inherited:允许子类继承父类的注解
[url]http://zy19982004.iteye.com/blog/1979520[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值