নীচের উদাহরণ বিবেচনা করুন। কালারচয়েস এনামে কোনও পরিবর্তন সমস্ত আইওয়াইন্ডো কালার সাবক্লাসকে প্রভাবিত করে।
এনামগুলি কি ভঙ্গুর ইন্টারফেস সৃষ্টি করতে পারে? আরও বহুগুণিত নমনীয়তার জন্য এনামের চেয়ে আরও ভাল কিছু থাকতে পারে?
enum class ColorChoice
{
Blue = 0,
Red = 1
};
class IWindowColor
{
public:
ColorChoice getColor() const=0;
void setColor( const ColorChoice value )=0;
};
সম্পাদনা: রঙটিকে আমার উদাহরণ হিসাবে ব্যবহারের জন্য দুঃখিত, প্রশ্নটি এটাই নয়। এখানে একটি আলাদা উদাহরণ যা রেড হেরিং এড়িয়ে যায় এবং নমনীয়তার দ্বারা আমি কী বোঝাতে চাই সে সম্পর্কে আরও তথ্য সরবরাহ করে।
enum class CharacterType
{
orc = 0,
elf = 1
};
class ISomethingThatNeedsToKnowWhatTypeOfCharacter
{
public:
CharacterType getCharacterType() const;
void setCharacterType( const CharacterType value );
};
আরও, কল্পনা করুন যে উপযুক্ত আইসোমথিংট্যাটনিডসটোকনুওয়াট টাইপঅফচার্যাক্টর সাবক্লাসটি কারখানার নকশার ধরণ দ্বারা হস্তান্তর করা হয়েছে। এখন আমার কাছে এমন একটি এপিআই রয়েছে যা ভবিষ্যতে কোনও আলাদা অ্যাপ্লিকেশনের জন্য বাড়ানো যায় না যেখানে মঞ্জুরিযোগ্য অক্ষরগুলি হ'ল {মানব, বামন}}
সম্পাদনা: আমি কী নিয়ে কাজ করছি সে সম্পর্কে আরও দৃ concrete় হতে হবে। আমি এই ( মিউজিকএক্সএমএল ) স্পেসিফিকেশনটির একটি শক্তিশালী বাঁধাই ডিজাইন করছি এবং আমি এনএস ক্লাস ব্যবহার করছি যাতে এক্সেস: গণনা দ্বারা ঘোষিত স্পেসিফিকেশনের সেই ধরণের প্রতিনিধিত্ব করতে পারি। আমি পরের সংস্করণ (৪.০) প্রকাশিত হলে কী ঘটে যায় তা ভেবে দেখার চেষ্টা করছি। আমার ক্লাস লাইব্রেরি একটি 3.0 মোড এবং একটি 4.0 মোডে কাজ করতে পারে? পরবর্তী সংস্করণটি যদি 100% পশ্চাদপটে সামঞ্জস্যপূর্ণ হয়, তবে সম্ভবত। তবে যদি বিশিষ্টতা থেকে গণনার মানগুলি সরানো হয় তবে আমি জলে মরেছি।