আপনি যদি স্ট্রিং না হওয়ার অতিরিক্ত জটিলতাটি ন্যায়সঙ্গত করতে ক্লাসকে যথেষ্ট কার্যকর কার্যকারিতা দিতে পারেন, তবে এটি করুন। আইএসবিএন এবং আইএসআইএন এর মতো সনাক্তকারীদের জন্য, আমি সন্দেহ করি যে এটি ঘটেনি।
শনাক্তকারী শ্রেণিটি কার্যকর হওয়ার জন্য, আমি এটির মতো কিছু দেখতে প্রত্যাশা করব:
class ISIN {
fromCUSIP()
fromRawISINString()
toString(ISIN::FormatType)
getExchange()
getCountryCode()
getLastFourDigits()
getWhateverCode()
...
}
পরিবর্তে যদি এটি আরও দেখতে লাগে:
class ISIN {
getString()
setString()
}
তারপরে আমি ক্লাসটি পুরোপুরি খনন করতাম, সর্বত্র নিয়মিত স্ট্রিং ব্যবহার করতাম এবং নিশ্চিত করতাম যে আমি সমস্ত প্রাসঙ্গিক ভেরিয়েবল নামগুলিতে ধারাবাহিকভাবে "আইসিন" ব্যবহার করি।
মনে রাখবেন যে কয়েকটি ভাষায়, নতুন প্রোগ্রাম যুক্ত করার ক্ষেত্রে সাধারণ প্রোগ্রামগুলিতে প্রায় কোনও "যুক্ত জটিলতা" নেই, এক্ষেত্রে আপনাকে কোনও নতুন কার্যকারিতা না থাকলেও নতুন প্রকারটি তৈরি করতে উত্সাহিত করা হবে। তবে সি ++ এর মতো বেশিরভাগ Oতিহ্যবাহী ওওপি ভাষার ক্ষেত্রে এটি হয় না।