2012-03-02 56 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方法,而如果直接访问变量,则必须重构整个代码库。

相关问题