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