কেন নির্ভরতা ইনজেকশন প্যাটার্ন incluided হয়নি চার গ্যাং ? জিএফএফ প্রাক-তারিখের বিস্তৃত স্বয়ংক্রিয় পরীক্ষণ করেছিল? নির্ভরতা ইনজেকশন এখন একটি মূল প্যাটার্ন হিসাবে বিবেচনা করা হয়?
কেন নির্ভরতা ইনজেকশন প্যাটার্ন incluided হয়নি চার গ্যাং ? জিএফএফ প্রাক-তারিখের বিস্তৃত স্বয়ংক্রিয় পরীক্ষণ করেছিল? নির্ভরতা ইনজেকশন এখন একটি মূল প্যাটার্ন হিসাবে বিবেচনা করা হয়?
উত্তর:
গ্যাং অফ ফোর বইটি প্রকাশিত হওয়ার সময় আমি সফটওয়্যার ডেভলপমেন্ট ম্যাগাজিনের সম্পাদক ছিলাম এবং আমি পুরো আত্মবিশ্বাসের সাথে বলতে পারি যে ইউনিট-টেস্টিং 1994 সালে ডিজাইন প্যাটার্নস প্রকাশিত হওয়ার পরে একটি ব্যাপক অনুশীলন ছিল না ।
1994 সালে, সি ++ হ'ল সর্বাধিক ব্যবহৃত অবজেক্ট-ওরিয়েন্টেড ভাষা এবং বেশিরভাগ লোকেরা এটি সি ব্যাকগ্রাউন্ড থেকে আসছিল। লোকেদের কাছে কেবল "বস্তুগুলিতে চিন্তা" জিনিস ছিল না যা হ'ল আপনার প্রোগ্রামে কয়েক হাজার বা হাজারে প্রবেশের পয়েন্টগুলির ধারণা। আপনি সম্পর্কে চিন্তা main()
। আপনি যদি কোনও বড় প্রকল্পে কাজ করেন তবে মডিউল ভিত্তিক প্রোগ্রাম তৈরি করতে আপনার কাছে একটি (সাধারণত বেশ বিস্তৃত) মেকফিল থাকতে পারে। কিন্তু "ইউনিট-টেস্টিং"? একটি প্রক্রিয়া শুরু করে, প্রয়োজনীয় মেমোরি প্রসঙ্গ তৈরি করে, এটি কার্যকর করে এবং ছিঁড়ে ফেলা হয়, প্রতি পদ্ধতির ভিত্তিতে? এটা খুব উগ্র ছিল।
জাভা একাধিক-এন্ট্রি-পয়েন্ট প্রোগ্রামিং আরও স্পষ্ট করে তুলেছে। মূল ডট-কম বুমের সময়ে, ইউনিট-টেস্টিং একটি সুপরিচিত কৌশল ছিল, তবে এটি সত্যই ছিল ইউনিত (প্রায় 2001?) যা আগুন ধরেছিল এবং একটি সর্বজনীন অনুশীলনে পরিণত হয়েছিল।
যদিও কৌশল এবং একটি ইন্টারফেসে প্রোগ্রামিংয়ের সাধারণ ধারণাটি জিওএফ এবং 90-এর দশকের মাঝামাঝি জিটজিস্টের অংশ ছিল, তবে ইনজেকশনটির ধারণাটি পার্টিতে বেশ দেরিতে এসেছিল (প্রায় '03 -'05?)। সত্যি বলতে, আমার ধূসর চুলগুলি ডিআই-র দিকটি সম্পর্কে এখনও সন্দেহজনক ("আমার লনটি নামাও, আপনি কনফিগারেশন ফাইলগুলি ছুঁড়ে ফেলুন!")।
তারা এটা বলা স্ট্র্যাটেজি ।
তাদের কৌশলটিতে জটিল সাউন্ডিং নাম ছাড়াই নির্ভরতা ইনজেকশনের সমস্ত বৈশিষ্ট্য রয়েছে বলে মনে হয়।
আমি মনে করি স্তরগুলিতে প্রয়োগকে পৃথক করার সময় নির্ভরতা ইনজেকশন আরও প্রাসঙ্গিক। আরেকটি ক্ষেত্র যেখানে আমরা নির্ভরতা ইনজেকশন সম্পর্কে ভাবি সেটি হচ্ছে ইউনিট টেস্টিং। এবং আপনার প্রাক-তারিখের পরামর্শটি সঠিক বলে মনে হচ্ছে। যদি গ্যাংটি 2012 সালে নিদর্শনগুলি সংগ্রহ এবং পৃথক করে রাখে তবে অবশ্যই নির্ভরতা ইনজেকশন থাকবে।
কৌশল আলোচনায় আসতে পারে তবে কৌশল নির্ভরতা ইনজেকশন সম্পর্কে কথা বলে না। তবে কোনও একক প্রকল্পে বা dll তে কৌশল প্যাটার্ন ব্যবহার করার সময় (সমস্ত শ্রেণি এবং ইন্টারফেস একটি প্রকল্পে থাকে) দেখা যাচ্ছে যে আমরা নির্ভরতা ইনজেকশনটি করছি। আসলে আমরা নই।
এখন, কৌশলের ধরণে উল্লিখিত শ্রেণি এবং ইন্টারফেসগুলি যদি বিভিন্ন প্রকল্প বা স্তরগুলিতে পৃথক করা হয় তবে আমাদের নির্ভরশীল ইনজেকশন কৌশলগুলি ব্যবহার করতে হবে। আমরা unityক্য কনফিগারেশন ফাইলগুলি ব্যবহার করতে পারি (যদিও কোনও রানটাইম পরিবর্তন সম্ভব নয়)। কিন্তু কৌশল প্যাটার্নটি নির্ভর করে না কীভাবে ইনজেকশন করতে পারে তা বলে না।
যদি এমন কোনও প্যাটার্ন থাকে যা নির্ভরতা ইনজেকশনের সাথে ঘনিষ্ঠভাবে সাদৃশ্যপূর্ণ তবে এটি অ্যাবস্ট্রাক্ট ফ্যাক্টরি পদ্ধতি প্যাটার্ন। এই প্যাটার্নটি নির্ভরতা ইনজেক্ট করার জন্য কৌশল প্যাটার্নের অভ্যন্তরে ব্যবহার করা যেতে পারে।
উত্তর কৌশলটি 100% সঠিক। আমি এটি ভোট দিয়েছি তবে মন্তব্য করতে পারি।
"কৌশলটি এটিকে ব্যবহার করে এমন ক্লায়েন্টদের থেকে অ্যালগরিদমকে স্বতন্ত্রভাবে পৃথক হতে দেয় [[১] গামা এট আল রচিত প্রভাবশালী বই ডিজাইন প্যাটার্নসের মধ্যে অন্তর্ভুক্ত কৌশলগুলির মধ্যে একটি হল কৌশল যা সফ্টওয়্যার ডিজাইনের বর্ণনা দেওয়ার জন্য নিদর্শনগুলি ব্যবহার করার ধারণাকে জনপ্রিয় করে তুলেছে।"
একটি নকশা প্যাটার্ন তার ব্যবহারের উপর নির্ভর করে না। নির্ভরতা ইনজেকশন কৌশল প্যাটার্ন ব্যবহার করে প্রয়োগ করা হয়। আমরা যদি ব্যবহারের ক্ষেত্রে ভিত্তিতে প্রতিটি প্যাটার্নটির নামকরণ করি তবে আমাদের প্রচুর নিদর্শনগুলির নামকরণ করতে হবে।
সংগ্রহস্থল প্যাটার্নটি কোনও নতুন ধরণ নয়, এটি টেম্পলেট প্যাটার্ন।
"এই নকশার প্যাটার্নের টেম্পলেট পদ্ধতিতে, একাধিক অ্যালগরিদম পদক্ষেপ সাবক্লাসগুলি দ্বারা পৃথক আচরণের অনুমতি দেওয়ার জন্য ওভাররাইড করা যেতে পারে এবং অতিশ্রমীকরণ অ্যালগরিদম এখনও অনুসরণ করা হয় তা নিশ্চিত করে।"
প্রায়শই নিদর্শনগুলি একাধিক নিদর্শনগুলি সমন্বিত হয় এবং এমভিসি প্যাটার্নের মতো নামকরণ করা হয়।
জিওএফ-এর ব্যবহৃত বিশুদ্ধ বিমূর্ত শ্রেণিগুলির ইন্টারফেস নেই, এবং একাধিক শ্রেণীর উত্তরাধিকারী সি ++ এর দক্ষতারও সুযোগ নিয়েছিল।