यदि आप कक्षा को स्ट्रिंग नहीं होने की गयी जटिलता को सही ठहराने के लिए पर्याप्त उपयोगी कार्यक्षमता दे सकते हैं, तो ऐसा करें। आईएसबीएन और आईएसआईएन जैसे पहचानकर्ताओं के लिए, मुझे संदेह है कि यह मामला नहीं है।
उपयोगी होने के लिए एक पहचानकर्ता वर्ग के लिए, मुझे उम्मीद है कि यह कुछ इस तरह दिखाई देगा:
class ISIN {
fromCUSIP()
fromRawISINString()
toString(ISIN::FormatType)
getExchange()
getCountryCode()
getLastFourDigits()
getWhateverCode()
...
}
यदि इसके बजाय यह इस तरह दिखता है:
class ISIN {
getString()
setString()
}
तब मैं पूरी तरह से कक्षा को खोदता था, हर जगह नियमित तार का उपयोग करता था, और सुनिश्चित करता था कि मैं सभी प्रासंगिक चर नामों में "आइसिन" का लगातार उपयोग करता हूं।
ध्यान दें कि कुछ भाषाओं में, एक नए प्रकार को जोड़ने से विशिष्ट कार्यक्रमों में लगभग कोई "जोड़ा जटिलता" नहीं है, इस मामले में आपको नया प्रकार बनाने के लिए प्रोत्साहित किया जाएगा, भले ही इसकी कोई कार्यक्षमता न हो। लेकिन C ++ जैसी अधिकांश पारंपरिक OOP भाषाओं के लिए ऐसा नहीं है।