আপনি যদি কোনও প্রোগ্রামে নতুন কনফিগারেশন বিকল্পগুলি যুক্ত করেন তবে এটির সাথে অভিনয়ের জন্য প্রয়োজনীয় বিকল্পগুলি পাওয়ার ক্ষেত্রে এটির প্রচুর পরিমাণে রিপাল প্রভাব থাকতে পারে। এটির সাথে মোকাবিলা করার জন্য তিনটি মূল উপায় যা আমি সচেতন:
আপনার প্রোগ্রামের এমন সমস্ত অংশে কনফিগারেশন সেটিংস পাস করুন যা স্পষ্টভাবে আদিম হিসাবে তাদের প্রয়োজন। এটি সর্বাধিক স্পষ্ট উপায় এবং উপায় যা জিনিসগুলিকে সর্বাধিক decouples করে। খারাপ দিকটি হ'ল এটি উভয় ভার্বোস এবং ভঙ্গুর।
সর্বাধিক প্রায়শই ব্যবহৃত কনফিগারেশন সেটিংস গ্লোবাল / স্ট্যাটিক করুন। এটি সহজতম উপায় তবে দূরত্বে কর্মের প্রবর্তন করে, টেস্টিবিলিটি বাধা দেয় এবং ধরে নেয় যে কনফিগারেশনটি সত্যই বিশ্বব্যাপী (যে আপনি যে কোনও সময়ে কেবল একটি কনফিগারেশন চাইবেন)।
একটি কনফিগারেশন শ্রেণি / কাঠামো তৈরি করুন যাতে পুরো প্রোগ্রামের জন্য বা প্রোগ্রামের মধ্যে প্রতিটি বড় উদ্বেগের জন্য সমস্ত কনফিগারেশন বিকল্প রয়েছে এবং তারপরে এটি স্পষ্টভাবে পাস করুন। এটি (1) এর চেয়ে কম স্পষ্ট তবে (2) এর চেয়ে বেশি স্পষ্ট। আপনি যদি কেবল একটি ফাংশন কলের জন্য কোনও সেটিং পরিবর্তন করতে চান তবে আপনি কনফিগার অবজেক্টটি ক্লোন করে এই মানটি পরিবর্তন করতে পারেন। এটি উভয় পরীক্ষায় এবং অনুশীলনে কার্যকর। যাইহোক, আপনি এখনও কোনও ফাংশনটির জন্য সম্ভাব্য পরিমাণে প্রচুর পরিমাণে তথ্য সরবরাহ করছেন যা কনফিগার ক্লাস / স্ট্রাক্টের কোনও মান পরিবর্তন করা এখনও একটি দূরত্বে পদক্ষেপ নিতে পারে।
আপনি (3) একটি প্যাটার্ন বা একটি বিরোধী-প্যাটার্ন বিবেচনা করবেন? যদি এটি একটি অ্যান্টি-প্যাটার্ন হয় তবে আপনি এর পরিবর্তে কী করবেন?