이것은 인터페이스/API를 작성하는 컨텍스트에 있습니다.불변 및 일반 대 특정 유형
모범 사례는 인터페이스의 특정 유형보다는 일반적인 유형을 사용하는 것이 좋습니다. HashMap
대신 Map
입니다.
모범 사례는 변경 가능 유형보다 변경 불가능 유형을 선호합니다.
그래서 이러한 제안을 모두 고려 (성능/메모리 풋 프린트, 제 3 자-라이브러리/의존성과 편의성/기능에 대한 우려를 제쳐두고) 점검이
public List<SomeClass> someMethod(...)
같은 공용 인터페이스 모양의 메소드
또는 오히려이 이는 구아바 사람들 사이에서 논의 된 경우
public ImmutableList<SomeClass> someMethod(...)
리턴 된 List가 변경 불가능한 것이 확실하다면, 2로보아야하고 그렇지 않으면 1로 보일 것입니다. 불변 목록 btw 무엇입니까? 내가 그것에 추가 할 수 없다면 그것은 정말로 목록인가? –
첫 번째 것 ... 그러나 불변 _collection_은 _elements_의 불변성을 의미하지 않는다. 단순히 컬렉션 자체를 변경할 수 없다는 것을 의미합니다 (요소 대체/제거/추가). – fge
@JohnRasch 오, 고마워. 나는 정말로 그 개념을 생각하거나 만난 적이 없다. –