আপনি "স্পষ্টত অন্যথায়" অনুশীলনটিকে কল করুন যা আপনি বিরোধী-প্যাটার্ন হিসাবে উল্লেখ করেছেন, কারণ এটি যদি আপনার সত্যিকারের ক্ষেত্রে অন্য কোনও হিসাবে বিশেষ-কেস কোড না থাকে তবে এটি অস্পষ্ট করে।
পাঠযোগ্যতা / রক্ষণাবেক্ষণযোগ্যতা সাধারণত উন্নত হয় যখন আপনার বেশিরভাগই প্রয়োজনীয় কোড-প্রবাহের নির্মাণ ছাড়া কিছুই থাকে না এবং আপনি সেগুলি হ্রাস করেন them এর অর্থ অনর্থক এলিস এবং যদি এটি সম্পূর্ণ ক্রিয়ায় একটি সুযোগ যুক্ত করে তবে তা অনুসরণ করা এবং এটি আরও কঠিন রাখা maintaining
উদাহরণস্বরূপ বলুন আপনার এই ফাংশন রয়েছে:
public void ConfigureOblogon(Oblogon oblogonToConfigure)
{
if (_validColors.Contains(oblogonToConfigure.Color))
{
oblogonToConfigure.ColorIndex = _validColors.IndexOf(oblogonToConfigure.Color);
}
else
{
oblogonToConfigure.Color = _validColors[0];
oblogonToConfigure.ColorIndex = 0;
}
}
এখন প্রয়োজনীয়তাটি এসেছে যে কনফিগারেশন চলাকালীন আপনাকে ওব্লগনের ধরণ / প্রকারের সূচকটিও নির্দিষ্ট করা উচিত, একাধিক স্কোপ রয়েছে যা কেউ সেই কোডটি স্থাপন করতে পারে এবং অবৈধ কোডের সাথে সমাপ্ত হতে পারে যেমন।
public void ConfigureOblogon(Oblogon oblogonToConfigure)
{
if (!_validOblogons.Contains(oblogonToConfigure.Type))
{
oblogonToConfigure.Type = _validOblogons[0];
oblogonToConfigure.TypeIndex = 0;
if (_validColors.Contains(oblogonToConfigure.Color))
{
oblogonToConfigure.ColorIndex = _validColors.IndexOf(oblogonToConfigure.Color);
}
else
{
oblogonToConfigure.Color = _validColors[0];
oblogonToConfigure.ColorIndex = 0;
}
}
else
{
oblogonToConfigure.TypeIndex = _validOblogons.IndexOf(oblogonToConfigure.Type);
}
}
মূল কোডটি ন্যূনতম নিয়ন্ত্রণ প্রবাহের কাঠামোগত প্রয়োজনীয় এবং ন্যূনতম সংস্থাগুলির সাথে লিখিত থাকলে এটির সাথে তুলনা করুন।
public void ConfigureOblogon(Oblogon oblogonToConfigure)
{
if (!_validColors.Contains(oblogonToConfigure.Color))
{
oblogonToConfigure.Color = _validColors[0];
}
oblogonToConfigure.ColorIndex = _validColors.IndexOf(oblogonToConfigure.Color);
}
দুর্ঘটনাক্রমে কিছু ভুল দাগে ফেলে দেওয়া বা এই ক্রিয়াকলাপটির দীর্ঘমেয়াদে বৃদ্ধি এবং রক্ষণাবেক্ষণে নকল সৃষ্টি করার ফলে ব্লোটিং স্কোপগুলি শেষ করা এখন আরও বেশি কঠিন হয়ে উঠবে। প্লাস এটি স্পষ্ট যে এই ফাংশনটির মাধ্যমে সম্ভাব্য প্রবাহগুলি তাই পাঠযোগ্যতা বর্ধিত হয়।
আমি জানি, উদাহরণটি কিছুটা সংশ্লেষিত, তবে আমি বহুবার দেখেছি
SomeFunction()
{
if (isvalid)
{
/* ENTIRE FUNCTION */
}
/* Nothing should go here but something does on accident, and an invalid scenario is created. */
}
সুতরাং নিয়ন্ত্রণ-প্রবাহের কনস্ট্রাক্টস সম্পর্কে সেই নিয়মগুলিকে আনুষ্ঠানিকভাবে আনতে আমার মনে হয় লোকেরা যখন তারা এই জাতীয় কোড লেখা শুরু করে তখন কিছু গন্ধ পেতে প্রয়োজনীয় অন্তর্দৃষ্টি বিকাশে সহায়তা করতে পারে। তারপরে তারা লিখতে শুরু করবে ..
SomeFunction()
{
if (!isvalid)
{
/* Nothing should go here, and it's so small no one will likely accidentally put something here */
return;
}
/* ENTIRE FUNCTION */
}
else
বোকাস বলে মনে হয়। বেশিরভাগ ক্ষেত্রে,else
আপনি পিছন দিকে বাঁকানো না হলে কেবল এই ব্লকটিতে কিছুই রাখার কিছুই নেই ।