2012-03-02 7 views
0

私はSpring MVCを学んでいます。実施例およびチュートリアルのほとんどで、私は、単純なモデルクラスはプライベート変数を定義し、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; 
    } 

} 

しかし、私はできる以下のいずれかのよう例えばそれら

用セッターとゲッターの方法を提供することにより作成されていることを見てきました以下のような

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

の下に、私はgetterとsetterメソッドに任意の処理を致しておりませんとしてだけでパブリック変数を定義することにより、上記のクラスを定義し、

のようにアクセス
Person objPerson = new Person(); 
objPerson.firstName = 'Mickey'; 
objPerson.lastName = 'Mouse'; 

私は、ゲッターとセッターメソッドにいくつかの処理ロジックを置くことにした場合、私のクライアントオブジェクトをすべて変更してゲッターとセッター。しかし、私はこのルートを取る場合は、すべてまたはそこに他の意味がありますか?

+0

[ゲッターとセッターを使う理由](http://stackoverflow.com/questions/1568091/why-use-getters-and-setters) –

答えて

0

忘れてしまった。 privateフィールドとpublic getter/settersに固執してください。どのJava IDEでもフィールドに基づいて生成できます。ほとんどのフレームワークは、JavaBeans標準に従ってgetters/setter(JPAはフィールドモードでの例外的な例外です)に依存します。

多くの頭痛から自分を守り、標準的なアプローチを使用してください。ごめんなさい。

0

ゲッターとセッターを作成する主な議論は、オブジェクト指向のセンスからカプセル化を改善することです。オブジェクトがある場合、そのパブリックインターフェイスを介してオブジェクトとやりとりしています。インスタンス変数に直接アクセスすることで、オブジェクトとのやり取りはなくなり、内部実装が可能になります。

アイデアは、内部が隠されたブラックボックスを作成することです。 getter/setterメソッドは、データベース、ファイルシステム、またはローカルインスタンス変数に移動して、モデルデータを取得することがあります。これらの基礎となるデータソースが後で更新される場合、ゲッター/セッターメソッドを変更するだけで済みますが、変数に直接アクセスする場合は、コードベース全体をリファクタリングする必要があります。

関連する問題