Sınıfa dize olmamanın ek karmaşıklığını haklı çıkarmak için yeterince kullanışlı işlevsellik verebilirseniz, bunu yapın. ISBN ve ISIN gibi tanımlayıcılar için, durumun böyle olmadığından şüpheleniyorum.
Bir tanımlayıcı sınıf yararlı olması için, bunun gibi bir şey görünmesini beklenir:
class ISIN {
fromCUSIP()
fromRawISINString()
toString(ISIN::FormatType)
getExchange()
getCountryCode()
getLastFourDigits()
getWhateverCode()
...
}
Bunun yerine daha çok şuna benzer:
class ISIN {
getString()
setString()
}
Sonra sınıf tamamen hendek, her yerde düzenli dizeleri kullanın ve tüm ilgili değişken isimlerinde sürekli olarak "isin" kullandığınızdan emin olun.
Bazı dillerde, yeni bir tür eklemenin tipik programlarda neredeyse hiçbir "ek karmaşıklığı" olmadığına dikkat edin, bu durumda yeni bir tür işlevselliği olmasa bile yeni tür oluşturmanız önerilir. Ancak bu, C ++ gibi geleneksel OOP dillerinin çoğu için geçerli değildir.