首页 > 解决方案 > 如何最小化层次结构的代码量

问题描述

这是为了学习。我有一个由 2 个类实现的接口,我应该减少我使用的代码量,以使事情更干净,更少混乱。目前,代码如下所示:

public abstract class VClass implements IntFace {

  protected String name;

  public VClass(String name) {
    this.name = name;
  }

  public int value (SClass sc) {//comes from a diff class
    return sc.lookup(name);
  }

  public String getName() {
   return name; 
  }

  @Override
  public String toString() {
   return getName(); 
  }
}

public abstract class NClass extends VClass implements IntFace {

  public Number(String name) {
   super(name);
     this.name = name;
  }

  public int value (SClass sc) {
    return sc.lookup(name);
  }

  public String getName() {
   return name; 
  }

  @Override
  public String toString() {
   return getName(); 
  }
}

public interface IntFace {

  public int value (SClass sc);

  public String toString (int num);
}

这段代码可以更简洁吗?

标签: javainterfacehierarchy

解决方案


您可以从代码中删除以下内容:

  1. implements IntFaceNClass声明。由于NClass extends VClass,它也实现IntFace了。
  2. this.name = name;NClass构造函数。name在超类构造函数中初始化
  3. valuegetName方法来自NClass。这些方法在超类中实现。
  4. public来自接口方法声明的修饰符。接口中public的方法是默认的。

现在您也可以制作name字段private,因为它不再用于NClass.


推荐阅读