최근에 저는 인간 친화적 인 클래스 이름으로 Java 콜렉션을 "마스킹"하는 습관을 겪었습니다. 몇 가지 간단한 예 :
// Facade class that makes code more readable and understandable.
public class WidgetCache extends Map<String, Widget> {
}
또는:
// If you saw a ArrayList<ArrayList<?>> being passed around in the code, would you
// run away screaming, or would you actually understand what it is and what
// it represents?
public class Changelist extends ArrayList<ArrayList<SomePOJO>> {
}
동료가 나에게 이것이 나쁜 습관이고 지연 / 대기 시간뿐만 아니라 OO 반 패턴이라는 것을 지적했습니다. 매우 작은 수준의 성능 오버 헤드 가 발생한다는 것을 이해할 수는 있지만 그것이 중요하다는 것을 상상할 수는 없습니다. 그래서 나는 묻습니다 : 이것이 좋은지 나쁜지, 왜 그런가요?
implementation
예 HashMap
또는 TreeMap
어떤 그가 오타가 있었다 가지고 있습니다.