कुछ अंतर्निहित प्रकार की सुरक्षा के साथ एक भाषा मान लेना (जैसे, जावास्क्रिप्ट नहीं):
ऐसी पद्धति को देखते हुए SuperType
, जिसे हम स्वीकार करते हैं , हम जानते हैं कि ज्यादातर मामलों में जिसमें हमें कार्रवाई करने के लिए टाइप परीक्षण करने के लिए लुभाया जा सकता है:
public void DoSomethingTo(SuperType o) {
if (o isa SubTypeA) {
o.doSomethingA()
} else {
o.doSomethingB();
}
}
हमें आमतौर पर, यदि हमेशा नहीं होता है, SuperType
तो इस पर एक एकल, अधिक उपयोगी विधि बनाएं और ऐसा करें:
public void DoSomethingTo(SuperType o) {
o.doSomething();
}
... जिसमें प्रत्येक उपप्रकार को अपना doSomething()
कार्यान्वयन दिया जाता है । हमारे आवेदन के बाकी तब उचित रूप से अनभिज्ञ हो सकते हैं कि क्या कोई दिया गया SuperType
वास्तव में एक है SubTypeA
या नहीं SubTypeB
।
आश्चर्यजनक।
लेकिन, हम अभी भी is a
अधिकांश में समान संचालन दे रहे हैं, यदि सभी नहीं, तो टाइप-सुरक्षित भाषाएं। और यह स्पष्ट प्रकार के परीक्षण के लिए संभावित आवश्यकता का सुझाव देता है।
तो, क्या में स्थितियों, यदि कोई हो, चाहिए हम या चाहिए हम स्पष्ट प्रकार परीक्षण?
मेरी अनुपस्थित मानसिकता या रचनात्मकता की कमी को क्षमा करें। मुझे पता है कि मैंने इसे पहले किया है; लेकिन, यह ईमानदारी से बहुत समय पहले मुझे याद नहीं था कि मैंने जो किया वह अच्छा था! और हाल की स्मृति में, मुझे नहीं लगता कि मुझे अपने चरवाहे जावास्क्रिप्ट के बाहर के प्रकारों का परीक्षण करने की आवश्यकता है।