最近、私は人間に優しいクラス名で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>> {
}
同僚が私に、これは悪い習慣であり、ラグ/レイテンシーをもたらし、オブジェクト指向のアンチパターンであることを指摘しました。非常にわずかなパフォーマンスオーバーヘッドが発生することは理解できますが、それがまったく重要だとは想像できません。だから私は尋ねる:これは良いことか悪いことか、そしてその理由は?
implementation
。すなわちHashMap
かTreeMap
、どのような彼はタイプミスがあったていました。