আমি কাজের ক্ষেত্রে আমাদের উত্তরাধিকার ব্যবস্থায় এটি অনেক কিছু দেখেছি - এমন ক্রিয়াকলাপগুলি:
bool todo = false;
if(cond1)
{
... // lots of code here
if(cond2)
todo = true;
... // some other code here
}
if(todo)
{
...
}
অন্য কথায়, ফাংশনটির দুটি অংশ রয়েছে। প্রথম অংশটি কিছু প্রক্রিয়াকরণ করে (সম্ভাব্যভাবে লুপগুলি, পার্শ্ব প্রতিক্রিয়াগুলি অন্তর্ভুক্ত ইত্যাদি) এবং সেই পথে এটি "টুডো" পতাকা সেট করতে পারে। "টুডু" পতাকাটি সেট করা থাকলে কেবল দ্বিতীয় অংশটি কার্যকর করা হয়।
এটি জিনিসগুলি করার মতো দেখতে বেশ কুৎসিত উপায় বলে মনে হয় এবং আমি মনে করি যে বেশিরভাগ ক্ষেত্রে আমি বুঝতে সময় নিয়েছি, পতাকা ব্যবহার এড়াতে রিফ্যাক্টর করা যেতে পারে। তবে এটি কি প্রকৃত বিরোধী-প্যাটার্ন, একটি খারাপ ধারণা, বা পুরোপুরি গ্রহণযোগ্য?
প্রথম সুস্পষ্ট রিফ্যাক্টরাইজেশন হ'ল এটি দুটি পদ্ধতিতে কাটা। যাইহোক, আমার প্রশ্নটি স্থানীয় পতাকা বৈকল্পিক তৈরি করার প্রয়োজনের (আধুনিক ওও ভাষায়) কোনও প্রয়োজন আছে কিনা তা সম্পর্কে আরও বেশি, সম্ভাব্যভাবে এটি একাধিক স্থানে সেট করে, এবং পরে কোডটির পরবর্তী ব্লকটি কার্যকর করতে হবে কিনা তা স্থির করার জন্য এটি পরে ব্যবহার করে।
["blacklisted-domain","suspicious-characters","too-long"]
যে বিভিন্ন কারণ প্রয়োগ করা।