เมื่อเร็ว ๆ นี้ฉันเคยติดนิสัยคอลเลกชัน 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
สิ่งที่เขามีพิมพ์ผิด