0

Fooクラスがある場合はハッシュマップすなわち:オブジェクトフィールドのメソッドをラップするか、オブジェクト自体を渡すか?

public class Foo { 

    private HashMap <String, Integer> fooMap; 

    //other foo methods 

} 

fooMapをカプセル化すると、下図のようにfooMapは、そのメソッドがラップしているべきで事情ものです:

public class Foo { 

    private HashMap<String, Integer> fooMap; 

    //other foo methods 

    public int getFoo(String s) { 

     return fooMap.get(s); 

    } 

    //other wrapper methods 

} 

または持っていますfooMap自体が返されました:

答えて

0

一般的に、フィールドを公開することは悪い考えであり、map()のコピーを返すことを提案していますあなたのコードが大きくなるにつれて、フローが他のオブジェクトを取ることができるすべてのパスをフォローすることができない場合があります。Fooオブジェクトマップは値を追加するいくつかの他のオブジェクトに渡し、理解するためにデバッグする日数がかかります何が悪かったのか。ここに私がこのトピックで見つけたいくつかのリンクがありますhttp://javarevisited.blogspot.co.il/2012/03/private-in-java-why-should-you-always.htmlWhy encapsulation is an important feature of OOP languages?

関連する問題