2
我知道在一般情況下使用getters和使字段私有有很多優點(數據隱藏,解耦,等等,等等等等)。我所要求的是與immutable課程相關的。爲什麼在不可變對象中使用getter而不是公用字段?
比方說,我創建了一個模型類將數據從一個REST響應存儲,例如:
public final class Profile {
private final int id;
private final String name;
private final String info;
private final String location;
private final URI avatar;
private final Gender gender;
// about 10 more fields
}
類及其字段都爲最終的,不能更改或覆蓋。每個字段都是不可變類的實例,並在構造函數中進行驗證。此外,每個領域都需要公開訪問(無數據隱藏)。
在這種情況下,有什麼可能的優勢可能會增加三倍的大小,爲每個字段添加getters而不是公開這些字段?