需求:聲明接口 ArrayVolume,包含兩個抽象方法 array()、volume()。標準寫法:
public interface ArrayVolume {
void array(); // 操作數組/集合的行為
void volume(); // 計算/獲取體積/容量的行為
}
Calculable、Measurable),ArrayVolume 像類名,易混淆。array() 無參無返回,語義模糊;實戰建議細化為 int[] getArray()、void setArray(int[]) 或 Stream<Integer> stream()。public interface ArrayVolume {
int[] getData(); // 必須實現
default long volume() { // 默認實現
return Arrays.stream(getData()).asLongStream().sum();
}
}
public class Box implements ArrayVolume {
private int[] dimensions;
public Box(int... dims) { this.dimensions = dims; }
public int[] getData() { return dimensions; }
// volume() 繼承默認實現:維度和
}
設計原則:接口定義「能做什麼」,不定義「怎麼存」。單一職責、面向抽象編程,配合默認方法實現向後兼容。