拆分大类并修复链继承的方法?

时间:2018-11-18 16:38:01

标签: java inheritance

我有一个大类Admin,该类有太多具有不同功能和不同函数的单独方法,并且对数据库的调用变得越来越难管理,所以我决定拆分它,但现在{{1 }}毫无用处。我想让Admin继承所有较小的类,但我能想到的唯一方法是通过链继承,如下所示:

Admin

A中没有使用B中的任何方法,但是我想在Admin中使用它们。这听起来像是不好的做法,但我不知道如何以其他方式实现它。

有没有一种方法可以更好地创建此类,而不必将public class Admin extends A { //code in here } public class A extends B { //code in here } public class B extends C { //code in here } 中的类中的每个方法都放入

1 个答案:

答案 0 :(得分:0)

如果您具有跨对象行为,而该行为不是通过当前继承树继承的,则应将此行为与树隔离(分离),并根据需要使其可注入。您可以从定义一个描述这些行为的接口开始,并在特定对象具有这些行为时实现它。

例如,您可以拥有:

public interface Capable{
  public void doThis();
  public void doThat();
} 

并说B应该具有此行为规范,而A没有,您可以这样做:

public class B extends A implements Capable {
  //some other stuff
  public void doThis(){..}
  public void doThat(){..}
}