0

클래스 푸가있는 경우 해시 맵 예 :개체 필드의 메서드를 래핑하거나 개체 자체를 전달할시기는 언제입니까?

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 자체 반환하여 필드를 노출 그것이 나쁜 생각을 일반적으로

public class Foo { 

    private HashMap<String, Integer> fooMap; 

    //other foo methods 

    public HashMap<String, Integer> getFooMap() { 

     return fooMap; 

    } 

} 

답변

0

을하고 난지도의 사본을 반환하는 제안() INST 실제 참조의 ead. 코드가 커짐에 따라 플로우가 수행 할 수있는 모든 경로를 따라갈 수는 없습니다. 다른 오브젝트는 Foo 오브젝트 맵을 값을 추가하는 다른 오브젝트로 전달할 수 있으며 디버깅 일을 이해하는 데 걸립니다. 뭐가 잘못 됐어. 다음은이 주제에 대한 링크입니다. http://javarevisited.blogspot.co.il/2012/03/private-in-java-why-should-you-always.htmlWhy encapsulation is an important feature of OOP languages?

관련 문제