问题如下:我有一个总的接口,命名为:IBase,用来抽象一些公用的方法,比如数据库的增删改查public interface IBase {
//add
public void insert() ;
//update
public void update() ;
//delete
public void delete() ;
}又写了个抽象类,命名为:AClass,实现上面的IBase,比如将上面的增删改查方法都实现了,public abstract class AbClass implements IBase{
public void delete() {
// TODO Auto-generated method stub

}
public void insert() {
// TODO Auto-generated method stub

}
public void update() {
// TODO Auto-generated method stub

}
}
以后所有的自己写的类,都继承这个抽象类AClass.public class A extends AbClass {
//其他逻辑
}
------------------上面这样,基本实现了将一些公用的方法提取,以达到公用的目的,每个具体的实现类都可以使用,达到代码的重用。
但是如果A类有一个新的需求方法,那么需要在IBase添加一个新方法(考虑到用spring的IOC),那么ABClass也要空实现一个这样的方法,如果有100个实现类,都增加了一个方法,那么在ABClass中就要添加100个方法感觉有些不合适。、----------------所以将上面的设计进行修改1.IBase   不动,还是原来的样子2.为每个实现类比如A,B,C 都设计一个接口,比如IA ,IB,IC     这些接口都继承IBase
  这样的好处是每个自己的业务增加了,只要修改自己对应的接口,比如A类有新需求,那么我只要修改IA就可以了,而IBase则不需要修改但是这样又有一个问题 ,就是,我想将A,B,C类中的公用的方法,都实现好了让他们用,不用每个都需要自己实现一遍,使用一个抽象类实现IBase 就成了第一种情况了,请高手们帮我出出主意,为小弟解惑,不胜感激~~~~~~

解决方案 »

  1.   

    建议:
    1.IBase 不动,还是原来的样子;
    2.将A,B,C类中的公用的方法得接口放到IBase中;
    3.将A,B,C类中的各自的方法得接口放到各自的接口中;
    4.将A,B,C类中的公用的方法在公共抽象类abstractClass中实现;
    5.类A,B,C实现自得接口的同时继承公共抽象类abstractClass;
    具体可以参考jdk关于集合框架类的实现方式!
      

  2.   


    高见 哈哈,我怎么没有想到实现接口的同时 去继承这个abstractClass呢。。