2012-03-02 90 views
0

我正在學習Spring MVC。而在大多數的例子和教程我已經看到了一個簡單的模型類是通過定義私有變量,並提供setter和getter方法爲他們在基於MVC的應用程序中創建模型類

例如像下面

public static class Person { 

    private String firstName; 
    private String lastName"; 

    public String firstName() { 
     return firstName; 
    } 

    public void firstName(String bar1) { 
     this.firstName = firstName; 
    } 

    public String lastName() { 
     return lastName; 
    } 

    public void lastName(String bar2) { 
     this.lastName = lastName; 
    } 

} 

,但我可以在一個創建通過僅定義公共變量作爲我沒有在getter和setter方法作任何處理,就像下面

public static class Person { 
    public String firstName; 
    public String lastName"; 
} 

和訪問它像

限定上述類
Person objPerson = new Person(); 
objPerson.firstName = 'Mickey'; 
objPerson.lastName = 'Mouse'; 

我知道如果在稍後的時候我決定在getter和setter方法中放置一些處理邏輯,那麼我可能不得不改變所有的客戶端對象來改變使用getter和setter方法。但是如果我採用這條路線,是否還有其他影響?

+0

可能重複的[爲什麼使用getter和setter?](http://stackoverflow.com/questions/1568091/why-use-getters-and-setters) – 2012-03-02 22:24:30

回答

0

忘記它。堅持private字段和public getters/setters。任何Java IDE都可以根據字段生成它們。按照JavaBeans標準,大多數框架依賴於getters/setter(JPA在字段模式中是一個值得注意的例外)。

從許多令人頭疼的事情中拯救自己,並使用標準方法。抱歉。

0

創建getter和setter的主要參數是從面向對象的角度改進封裝。當你有一個對象時,你通過它的公共接口與對象進行交互。通過直接訪問實例變量,您不再與對象交互,而是與內部實現交互。

這個想法是創建一個黑盒子,內部隱藏。 getter/setter方法可能會發送到數據庫,文件系統或本地實例變量以檢索模型數據。如果這些基礎數據源在稍後的更新中發生更改,則只需更改getter/setter方法,而如果直接訪問變量,則必須重構整個代碼庫。

相關問題