- 類是package-private的,是要暴露給客戶端的。x和y是public的,也是要暴露給客戶端的。那麼考慮到向後兼容,這兩個變量將永久暴露給客戶端。
- 並且,在訪問這兩個變量的前後,不能添加任何操作。getter就可以,比如提供一個緩存。
class Point{
public double x;
public double y;
}
數組是public的話,可能或被客戶端改變。可以轉換成unModifiableList。
private static final Integer[] integers =new Integer[]{1, 2, 4};
public static final List integetList
= Collections.unmodifiableList(Arrays.asList(integers));
我們應該儘量少暴露classes,interfaces和成員變量給客戶。