如何最小化层次结构的代码量
How do I minimize the amount of code for a hierarchy
这是为了学习。我有一个由 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);
}
这段代码可以更简洁吗?
您可以从代码中删除以下内容:
implements IntFace
来自 NClass
声明。由于 NClass extends VClass
,它也实现了 IntFace
。
this.name = name;
来自 NClass
构造函数。 name
在超类构造函数中初始化
来自 NClass
的 value
和 getName
方法。这些方法在超类中实现。
public
来自接口方法声明的修饰符。默认情况下,接口中的方法是 public
。
现在您还可以创建 name
字段 private
,因为它不再用于 NClass
。
这是为了学习。我有一个由 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);
}
这段代码可以更简洁吗?
您可以从代码中删除以下内容:
implements IntFace
来自NClass
声明。由于NClass extends VClass
,它也实现了IntFace
。this.name = name;
来自NClass
构造函数。name
在超类构造函数中初始化
来自 value
和getName
方法。这些方法在超类中实现。public
来自接口方法声明的修饰符。默认情况下,接口中的方法是public
。
NClass
的 现在您还可以创建 name
字段 private
,因为它不再用于 NClass
。