关于spring写法的一点疑问

demondevilhades 2015-11-09 04:26:51
先上代码

Bean:



public class Bean{}
public class Bean1 extends Bean{}
public class Bean2 extends Bean{}



第一种:



public interface DoService{
public void do(Bean bean);
public Bean get();
}
public class Do1ServiceImpl implements DoService{
@Override
public void do(Bean bean){
Bean1 bean1 = (Bean1)bean;
...
}
@Override
public Bean get(){...}
}
public class Do2ServiceImpl implements DoService{
@Override
public void do(Bean bean){
Bean2 bean2 = (Bean2)bean;
...
}
@Override
public Bean get(){...}
}



第二种:



public interface DoService<T>{
public void do(T bean);
public T get();
}
public class Do1ServiceImpl implements DoService<Bean1>{
@Override
public void do(Bean1 bean){...}
@Override
public Bean1 get(){...}
}
public class Do2ServiceImpl implements DoService<Bean2>{
@Override
public void do(Bean2 bean){...}
@Override
public Bean2 get(){...}
}



第三种:



public interface Do1Service{
}
public class Do1ServiceImpl implements Do1Service{
}
public interface Do2Service{
}
public class Do2ServiceImpl implements Do2Service{
}




其中每个ServiceImpl都是针对对应Bean的操作,但是Bean1和Bean2中的属性有区别。
就目前来看第二种写法好像是比较好用的,既不用每次都强转,又可以继承相同的接口,但是以前没见过这么写spring的service层代码的。请各路大神评价一下这种写法吧。
...全文
84 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧