हाल ही में मुझे मानव-अनुकूल वर्ग नामों के साथ जावा संग्रह "मास्किंग" करने की आदत है। कुछ सरल उदाहरण:
// 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 विरोधी पैटर्न भी है। मैं यह समझ सकता हूँ कि यह ओवरहेड प्रदर्शन की एक बहुत छोटी डिग्री है, लेकिन यह बिल्कुल भी महत्वपूर्ण नहीं है। तो मैं पूछता हूं: क्या यह अच्छा या बुरा है, और क्यों?
ChangeList
संकलन टूट जाएगा extends
, क्योंकि सूची एक अंतरफलक है, की आवश्यकता है implements
। @randomA क्या आप कल्पना कर रहे हैं इस त्रुटि की वजह से याद आती है
implementation
यानी HashMap
या TreeMap
और क्या वह लिखने में कोई त्रुटि थी।