আমি যদি ডিআই কনটেইনার ব্যবহার না করতাম তবে আমার এমভিসি 3 অ্যাপে আমাকে এনটিটি ফ্রেমওয়ার্ক লাইব্রেরিটি উল্লেখ করতে হবে না
এমনকি ডিআই কনটেইনার ব্যবহার করার সময়, আপনাকে আপনার এমভিসি 3 প্রকল্পের রেফারেন্স ইএফ দিতে দেওয়া হবে না, তবে আপনি আপনার এমভিসি 3 প্রকল্পের অভ্যন্তরে কম্পোজিশন রুট (আপনি যেখানে আপনার বস্তুর গ্রাফগুলি রচনা করেছেন সেখানে সূচনাপথ) প্রয়োগ করে এটি করতে পছন্দ করবেন । যদি আপনি সমাবেশগুলি ব্যবহার করে আপনার স্থাপত্য সীমানা রক্ষা করতে খুব কঠোর হন তবে আপনি হয় আপনার উপস্থাপনার যুক্তিটিকে অন্য কোনও প্রকল্পে সরিয়ে নিতে পারেন।
আপনি যখন প্রারম্ভিক প্রকল্প থেকে সমস্ত এমভিসি সম্পর্কিত যুক্তি (কন্ট্রোলার, ইত্যাদি) কোনও শ্রেণির লাইব্রেরিতে স্থানান্তরিত করেন, এটি এই উপস্থাপনা স্তর সমাবেশকে বাকি অ্যাপ্লিকেশন থেকে সংযোগ বিচ্ছিন্ন রাখতে দেয়। আপনার ওয়েব অ্যাপ্লিকেশন প্রকল্পটি প্রয়োজনীয় স্টার্টআপ যুক্তি সহ একটি খুব পাতলা শেল হয়ে যাবে। ওয়েব অ্যাপ্লিকেশন প্রকল্পটি কম্পোজিশন রুট হবে যা অন্যান্য সমস্ত অ্যাসেমব্লির উল্লেখ করে।
ক্লাস লাইব্রেরিতে উপস্থাপনার যুক্তি সরিয়ে নেওয়া এমভিসির সাথে কাজ করার সময় জিনিসগুলিকে জটিল করে তুলতে পারে। নিয়ন্ত্রণকারীরা স্টার্টআপ প্রজেক্টে না থাকায় সমস্ত কিছু তারের কাজটি শক্ত করা শক্ত হবে (যদিও ভিউ, চিত্র, সিএসএস ফাইলগুলি সম্ভবত স্টার্টআপ প্রজেক্টে থাকতে হবে)। এটি সম্ভবত করণীয় তবে সেট আপ করতে আরও সময় লাগবে।
ডাউনসাইডগুলির কারণে আমি সাধারণত ওয়েব প্রকল্পে কম্পোজিশন রুট রাখার পরামর্শ দিই। অনেক ডেভলপাররা চায় না যে তাদের এমভিসি অ্যাসেম্বলি ডাল অ্যাসেমব্লির উপর নির্ভর করবে, তবে এটি আসলে কোনও সমস্যা নয়। ভুলে যাবেন না যে সমাবেশগুলি একটি স্থাপনা শিল্পকর্ম; কোডটি আলাদাভাবে মোতায়েনের জন্য আপনি একাধিক সমাবেশে কোড বিভক্ত করেছেন। অন্যদিকে একটি স্থাপত্য স্তর হ'ল যৌক্তিক নিদর্শন। একই সমাবেশে একাধিক স্তর রাখা খুব ভাল (এবং সাধারণ) পক্ষে সম্ভব।
এই ক্ষেত্রে আমরা একই ওয়েব অ্যাপ্লিকেশন প্রকল্পে (এইভাবে একই সমাবেশে) কম্পোজিশন রুট (স্তর) এবং উপস্থাপনা স্তরটি শেষ করব। এমনকি যদিও বিধানসভাটি ডএএল সমন্বিত সমাবেশকে উল্লেখ করে, উপস্থাপনা স্তরটি এখনও ডেটা অ্যাক্সেস স্তরকে রেফারেন্স করে না । এটি একটি বড় পার্থক্য।
অবশ্যই, যখন আমরা এটি করি, সংকলনকালে এই স্থাপত্য বিধিটি পরীক্ষা করার জন্য আমরা কম্পাইলারটির ক্ষমতা হারাব, তবে এটি কোনও সমস্যা হওয়া উচিত নয়। বেশিরভাগ আর্কিটেকচারাল বিধিগুলি আসলে সংকলক দ্বারা পরীক্ষা করা যায় না এবং সর্বদা সাধারণ জ্ঞানের মতো কিছু থাকে। এবং যদি আপনার দলে কোনও সাধারণ জ্ঞান না থাকে, আপনি সর্বদা কোড রিভিউ ব্যবহার করতে পারেন (যা প্রতিটি দলের আইএমও সর্বদা বিটিডব্লিউ করা উচিত)। আপনি এনডিপেন্ডের মতো একটি সরঞ্জামও ব্যবহার করতে পারেন (যা বাণিজ্যিক), যা আপনাকে আপনার স্থাপত্য বিধিগুলি যাচাই করতে সহায়তা করে। আপনি যখন নিজের বিল্ড প্রক্রিয়াটির সাথে এনডিপেন্ডকে একীভূত করেন, তখন কেউ আপনাকে এইরকম আর্কিটেকচারাল বিধি লঙ্ঘন করে এমন কোড পরীক্ষা করে যখন আপনাকে সতর্ক করতে পারে।
আমার বই ডিপেন্ডেন্সি ইনজেকশন, নীতিমালা, অনুশীলন, প্যাটার্নসের ৪ র্থ অধ্যায়ে কীভাবে কম্পোজিশন রুট কাজ করে সে সম্পর্কে আপনি আরও বিস্তৃত আলোচনা পড়তে পারেন ।