关于spring写法的一点疑问

demondevilhades demondevilhades 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先上代码

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层代码的。请各路大神评价一下这种写法吧。
...全文
评论
收藏 已收藏
分享
返回顶部
demondevilhades
Web 开发 81,108 成员 341,721 内容