常見的做法是使用JavaBean風格的
class Address {
private String name;
private String city;
public setName(String name){
this.name = name;
}
public String getName() {
return name;
}
public setCity(String city){
this.city = city;
}
public getCity() {
return city;
}
}
另一種常見的做法,這是相當類似於您第二種方法是創建不可變對象。參數傳遞給構造函數而不是大的setter方法。
class Address {
private final String name;
private final String city;
public Address(String name, String city) {
this.name = name;
this.city = city;
}
public String getName() {
return name;
}
public getCity() {
return city;
}
}
從視圖存儲器點,差異將是第二個例子是設置在構造所有屬性和所有這些屬性是不可變的。一般來說,用這種方法構建的對象在被多個線程使用時更安全。
在第二示例中,沒有必要進行同步。當使用標準JavaBean對象的多線程時,您需要處理同步/內存問題。
向我們展示兩種方法的代碼示例的含義。 –
這個班的目的是什麼?它是一個價值對象嗎?你需要獨立設置每個值嗎?創建對象後,這些值是否必須改變? 「記憶的角度」是什麼意思?人類記憶或計算機記憶? – buritos
第一個例子很好,第二個例子很糟糕。使用構造函數。 – BalusC