Table of Contents

তিনটি ক্রীম সৃষ্টি নমুনার ধরন বুঝতে পারা

একই ডিজাইনের নকশার নকশার বিন্যাস হচ্ছে যুদ্ধ- নীল কালির মত নকশার নকশা। এর মধ্যে রয়েছে সৃষ্টির ধরন- একক, ফ্যাক্টরি এবং প্রতোট-এ, কিভাবে গঠন করা হয়, এবং প্রতোত্রো-অভিযানে, সরাসরি প্রভাব থাকা একটি বস্তুর উপর ভিত্তি করে সরাসরি প্রভাব বিস্তার করা। এই নকশাটি বিভিন্ন ধরনের পদক্ষেপের উপর ভিত্তি করে তৈরি করা, এবং এই ধরনের বিভিন্ন পদক্ষেপের উপর ভিত্তি করে তৈরি করা যায়।

এককটন বিন্যাস: Acting as সমস্ত নিয়মকে শাসন করতে একটি ইনস্ট্যান্স

একটি ক্লাস ঠিক একটি শ্রেণী নিশ্চিত করতে হবে এবং এটি একটি বৈশ্বিকভাবে ব্যবহারের একটি মাধ্যম সরবরাহ করে। এটি সাধারণ বিন্যাসের একটি ব্যবহার। মূল ধারণা হলো তাৎক্ষণিক ভাবে চিহ্নিত প্রক্রিয়া নিয়ন্ত্রণ করা যাতে কোন কিছুকেই নির্দেশ করা না হয়।

একক কাজ যেভাবে কাজ

সাধারণত, একক শ্রেণীর একটি ব্যক্তিগত নির্মাণকারী এবং একটি স্থায়ী পদ্ধতি রয়েছে যা পুনরাবৃত্তিমূলক পন্থাকে পুনরায় নির্মাণ করে; পরবর্তী কলটি একই ধরনের বস্তু তৈরি করা; একাধিক স্তরের পরিবেশকে প্রতিরোধ করার জন্য সুসংগতির প্রয়োজন, যা বিভিন্ন ধরনের বৈশিষ্ট্যকে প্রতিরোধ করতে পারে।

public class DatabaseConnectionPool {
 private static DatabaseConnectionPool instance;
 private DatabaseConnectionPool() { /* initialization */ }
 public static synchronized DatabaseConnectionPool getInstance() {
 if (instance == null) {
 instance = new DatabaseConnectionPool();
 }
 return instance;
 }
}

যখন এককansoned

  • [[FLT] ভাগ ভাগাভাগি করা সম্পদগুলো:[[FF] [FLT] একটি সংযোগ পুল, একটি লগ সার্ভিস অথবা একটি কনফিগারেশন ব্যবস্থাপক একটি সমন্বয়মূলক তালিকা থেকে সুবিধা লাভ করে।
  • [[[F] Global] [FLT] GPG অবস্থা:[FO][FLT] যখন একটি অ্যাপ্লিকেশন wide cache বা রেজিস্ট্রি নির্বাচন করুন।
  • [[[F] Thorp[Fort] TRED রিসোর্স:[[FLT] ফাইল সিস্টেম, প্রিন্টার স্পুলকারী, বা উইন্ডোর বৈশিষ্ট্য শুধুমাত্র একটি মাত্র একবারই ব্যবহার করা হয়।

[ অধ্যয়ন প্রশ্নাবলি]

  • [[[F] [FOP]] ব্যবহার করুন:[FO] সকল কিছু গোপন রাখার জন্য একটি একক কি- বোর্ড ব্যবহার করুন এবং গোপনভাবে পরীক্ষা করুন কারণ আপনি খুব সহজেই অনুরূপভাবে প্রতিস্থাপন করতে পারবেন না ।
  • [[FLT] উপরে- shOT] / WOPL [FLT] [FLT] [FLT] ক্লাসিক সমন্বয় একটি বোতলের মতো হতে পারে । বিকল্প অনুরূপ বিকল্প (pugecting) অথবা দুইবার লক (প্রান্তে) প্রতিযোগিতা হ্রাস করে ।
  • [[[F]] আক্রমণ:[[FLT]] কারণ [FLTR] বিশ্বের প্রবেশ পয়েন্ট কঠিন, ক্লায়েন্টরা কনস্ট্যাট-ন্ট ক্লাস থেকে আলাদা হয়ে গেছে, এবং তারা নিয়ম লঙ্ঘন করে ।

এই বাঁধাগুলো সত্ত্বেও, একবারের জন্য, বিশেষ করে যখন আপনার একটা বিশেষ, বিশ্বব্যাপী প্রবেশযোগ্য বস্তু প্রয়োজন ।

ফ্যাক্টরি নকশা: বস্তুর সৃষ্টি

ফ্যাক্টরির নকশার বিন্যাস তাৎক্ষণিক যুক্তি, পৃথক পৃথক শ্রেণী নির্ধারণ করার অনুমতি দেয় কোন শ্রেণীকে গঠন করতে। এটি প্রধান দুটি স্বাদের মধ্যে দিয়ে শুরু হয়: [FROL] FL [FROPL [FL] পদ্ধতি [F] [F] [F] [F] [F] [F] একটি পদ্ধতি যা নতুন বস্তুসমূহ ফেরত নিয়ে আসে (L] এবং [F] [F] [F]: [F]] [F]] [FP]]] [FP]:: [F]]]] [L] proc]] proc] prop] prop (অবৈধ, উভয় প্রশাসন] ফ্যাক্টরির অনুরূপ ও দুটি শ্রেণীতে ক্লিক করে পপ-আপ করুন। উভয় প্রশাসনের মাধ্যমে উপলব্ধ করে, দুটো প্রশাসনের ক্ষেত্রে প্রযোজ্য নয়; দুটো প্রশাসনের ক্ষেত্রে প্রযোজ্য মান হল: [LUT] [F] [F] [F] [F]:: [F] [F] [F]

বিস্তারিত বিবরণ সহ ফ্যাক্টরি

বস্তুর জন্য একটি ইন্টারফেস নির্ধারণ করুন, কিন্তু উপ- শ্রেণী দ্বারা যে ধরনের বস্তু তৈরি করা হবে, তা পরিবর্তন করা যাবে । উদাহরণস্বরূপ, একটি ডায়ালগ ক্লাসের মধ্যে একটি পদ্ধতির এমন পদ্ধতি রয়েছে [FLT] যেমন WindowsD ও লিনাক্সের মত সাব- প্ল্যাটফর্মের মধ্যে এই পদ্ধতিতে পরিবর্তন করতে পারে ।

abstract class Dialog {
 abstract Button createButton();
 public void render() {
 Button okButton = createButton();
 okButton.onClick();
 }
}
class WindowsDialog extends Dialog {
 Button createButton() { return new WindowsButton(); }
}

এই বিন্যাসটি আদর্শ যখন:

  • শ্রেণী শ্রেণী এই শ্রেণীকে বিবেচনা করতে পারে না, এর শ্রেণীকে অবশ্যই নির্মাণ করতে হবে ।
  • আপনি একই স্থানে অবজেক্ট যুক্তি তৈরি করতে চান ।
  • সিস্টেমের গঠন কীভাবে গঠিত হয়, তা স্বাধীন হতে হবে ।

নির্বস্তুক ফ্যাক্টরি: সংশ্লিষ্ট বস্তুর পরিবারগুলোকে ধ্বংস করা

অ্যাবস্ট্র্যাক্ট ফ্যাক্টরি তাদের কনক্রিট ক্লাসকে কোন নির্দিষ্ট শ্রেণী ছাড়াই পরিবার গঠন করার একটি ইন্টারফেস সরবরাহ করে । GUI টুলের কথা চিন্তা করুন যা কোন নির্দিষ্ট থিমের অধীনে প্রযোজ্য বাটন, চেক করুন এবং স্ক্রোলের মাধ্যমে সঠিকভাবে ব্যবহার করা হবে (যেমন, কাপার্ট, আই. ডি.) । ক্লায়েন্ট একটি কাল্পনিক ইন্টারফেস ব্যবহার করে পণ্য সংগ্রহ করতে একটি ভলেন্ট ফ্যাক্টরি তৈরী করে (ম্যাটিক ফ্যাক্টরি, মেটেলিক ফ্যাক্টরি), এবং কন্টেইনার (মটিফাটি) সঠিক নকশা তৈরি করতে পারে।

এই বিন্যাসটি যখন ব্যবহার করা হয়:

  • সিস্টেমের সাথে একাধিক সামগ্রীর উপস্থিতি কনফিগার করা আবশ্যক।
  • আপনি যে সমস্ত পণ্যের মধ্যে সুসংগতি বজায় রাখতে চান, আপনি সেগুলি পরীক্ষা করে দেখতে চান।
  • নতুন পণ্য যোগ করার জন্য, চলমান কোডের ক্ষেত্রে সর্বনিম্ন পরিবর্তন প্রয়োজন ।

ফ্যাক্টরি এবং অন্যান্য প্যাটার্নের মধ্যে মিল

ফ্যাক্টরি আপনার জন্য একটি জটিল বিষয়, যখন আপনি সৃষ্টি সৃষ্টি সৃষ্টি সৃষ্টি সৃষ্টি সম্বন্ধে তথ্য ধারণ করতে প্রয়োজন, অথবা যখন আপনাকে ক্লিক করে বাস্তবায়নের কাজ পুনরায় প্রয়োগ করতে হবে। এটি একক-এর সংখ্যা সীমাবদ্ধ নয় কারণ এটি কেবল কেন্দ্রীয় সৃষ্টিকে সীমাবদ্ধ করে না। ফ্যাক্টরির অনুরূপভাবে নকল করার পরিবর্তে নতুন দৃষ্টান্ত তৈরি করা হয়েছে: teFODOROD [F] [F]: [F] CRODROD::LODOROROD [F]:L] CROD [F]: WDRRODOROR::L [FRORORORY:LYYYYUTRYYYYYYYYYYY:LY:LY [FRODON [LY:LY:LRORRRON:LY:LY:LY:LY:LRODY:LY [FLY:LYYYYYYY:LYYYYYYY:LYTRRYTRY:LYYYY:LY:LYTRON

স্টাইলের বিন্যাস: হেAcial এর পরিবর্তে ক্লোন

একটি বিদ্যমান বস্তুর কপি করে একটি নতুন বস্তু তৈরি করে - নমুনা তৈরি করা বিশেষভাবে গুরুত্বপূর্ণ । এটি বিশেষ করে তাৎক্ষনিকভাবে ব্যয়বহুল (যেমন, ভারী ডাটাবেস, জটিল জ্যামিতি গণনা) অথবা যখন কনফিগারেশন আবরণের উপস্থিতি বিভাজনের পরিবর্তে, আপনাকে একটি অনুরূপ নকশা তৈরি করতে হবে ।

মেনোনাইটরা: বনাম ডি.

অধিকাংশ প্রোগ্রামিং ভাষা জাভা একটি স্বয়ংক্রীয়ভাবে ক্লোন পদ্ধতি ([[FLT], [FLT], [FFLT] - তে, [FO:][FLT],[FLT], অথবা জাভাস্ক্রিপ্ট- এ ছড়িয়ে দেওয়ার জন্যে । মনোযোগ দিতে হবে যে কপিটি অগভীরভাবে (মূলত) । তবে, সুনির্দিষ্টভাবে কপি করার জন্য, সুনির্দিষ্ট একটি বস্তুর উল্লেখকৃত (শুধুমাত্র, সর্বেকাঙ্কর) উল্লেখকৃত (অন্তান) ।

class MazePrototype {
 public MazePrototype clone() throws CloneNotSupportedException {
 return (MazePrototype) super.clone(); // shallow copy
 }
}

প্রোটো-তে আদর্শ পরিস্থিতি

  • [[[F] সসলূচরম বস্তু নির্মাণ:[[F] উদাহরণ স্বরূপ, ফাইল থেকে বড় কনফিগারেশন লোড করুন অথবা একটি কমপ্লেক্স মেশিং করা একটি দ্রাক্ষাফল উৎপন্ন করুন ।
  • [[F] diversicationication বস্তু বস্তু: [FLT][FLT] সিস্টেম যখন সিস্টেম দ্বারা নতুন বস্তু তৈরি করা হয় তখন সিস্টেমটি নির্ধারণ করতে হবে যে ধরনের বস্তুগুলো রানার (যেমন, শত্রু ধরণের টেমপ্লেট থেকে তৈরি করা হয়) ।
  • [[[F] সাব- ক্লাস বিস্ফোরণ:[FLT] ত্রুটিগুলো মুছে ফেলা হয়েছে:[FLT] সামান্য পৃথক সাব- ক্লাস তৈরির পরিবর্তে, আপনি একটি নমুনা ক্লোন এবং কিছু বৈশিষ্ট্য পরিবর্তন করতে পারেন ।

Prototype রেজিস্ট্রি এবং Addtext

একটি কী- এর আগে নির্মিত নমুনাগুলোর কেন্দ্র স্থাপন করার মাধ্যমে আপনি আরো একটি ধাপ নিতে পারেন । ক্লায়েন্ট একটি চাবি কী- এর সাহায্যে একটি নমুনার আবেদন করছে । একটি প্রোটোটাইপের সাহায্যে একটি কনফিগারেশন, ক্লোন এবং সমন্বয় করতে । একটি রেজিস্ট্রি এর সঙ্গে একটি বিকল্প হিসেবে প্রোটোtype অপশন হিসেবে একটি সুনির্দিষ্ট ফলাফল হতে পারে । একটি সুনির্দিষ্ট মান অথবা একা একার জন্য একটি

সাইড-বারের মধ্যে উভয়-কালো তুলনা: একক, ফ্যাক্টরি, Cotother-type

নীচের টেবিলের মান নির্ধারণের জন্য ব্যবহৃত সহায়ক তথ্য, এই কী-গুলি আপনার বাছাই করতে পারে:

PatternInstance CountCreation MechanismBest For
SingletonExactly oneSelf-managed global accessShared resources, global state
FactoryMultiple instances (or families)Centralized creation logicDecoupling client from concrete classes, complex creation
PrototypeMultiple instances cloned from a templateCloning (shallow/deep copy)Expensive instantiation, runtime object generation

যখন বিন্যাস ওভারপ্লাগ বা কমবিটার

  • [[[[F] একটি সাধারণ ফ্যাক্টরি:[FLT] [FLT] একটি ফ্যাক্টরি একটি একক আক্টন হতে পারে, প্রতি প্ল্যাটফর্মে একটি বিযুক্ত ফ্যাক্টরি (যেমন, একটি) । এটি হল, কেন্দ্রীয় তৈরির মাধ্যমে বিশ্বব্যাপী প্রবেশাধিকার ।
  • [[F][FLT] <0] [FLT] একটি প্রোট্যাক্টার রেজিস্ট্রি একটি ফ্যাক্টরি হিসেবে কাজ করতে পারে - আপনি একটি ফ্যাক্টরি হিসেবে একটি dorrtor হিসেবে ব্যবহার করতে পারেন । এটি বিশেষভাবে কার্যকরী। উপাদান তৈরির সময় ব্যবহার করা হবে ।
  • [[F][FO[FOP][FLT] + tab] একটি প্রোটোন্ত বস্তু সম্ভবত একটি একক বস্তুর হতে পারে, যে একটি একক প্রক্রিয়া টাইপ করতে পারে, যদিও ক্লোনগুলো একক নয় ।

ব্যবহারিক সিদ্ধান্তগুলো কাঠামো

যখন আপনি একটা নকশার সমস্যার মুখোমুখি হন, যেটা সৃষ্টির আদর্শের জন্য আবেদন করে, তখন এই প্রশ্নগুলোকে সঠিক উপায়ে জিজ্ঞেস করুন:

  1. [[[[[[[[[]] অ্যাপ্লিকেশন থেকে ] আমার কি ঠিক একই ইনস্ট্যান্স প্রয়োজন?[F] যদি হ্যাঁ, তাহলে, একক আর্গুমেন্টটা বিবেচনা করুন । নিশ্চিত থাকুন যে, বিশ্বব্যাপী এক যৌথ রাষ্ট্রের প্রকৃত প্রয়োজন এবং পরীক্ষা করা যাবে না ।
  2. [[[F] অবজেক্ট জটিল সৃষ্টি করেছে অথবা সম্ভবত পরিবর্তিত হতে পারে?[F] [FLT] যদি হ্যাঁ, ফ্যাক্টরি পদ্ধতি অথবা কনটেন্ট ফ্যাক্টরি ব্যবহার করে, বিশেষ করে নতুন বস্তু যোগ করার সময় এটি সাহায্যকারী ।
  3. [[F] অবজেক্ট একটি বিয়ারের বোতলের মধ্যে একটি বোতলের স্তম্ভ তৈরি, অথবা আমার কি এমন অনেক দৃষ্টান্ত দরকার যা সামান্য পার্থক্য?[FOL] হ্যাঁ, প্রোtype একটি টেমপ্লেটের মাধ্যমে সময় ও মেমরি সংরক্ষণ করতে পারেন।
  4. [[FLT] একই উদ্দেশ্যে একটি প্যাটার্নের চেয়ে বেশী কি করতে পারে?[F][FFL][1]] WEFLLUN:1. যেমন, F8 এর নকশা প্রোটোর পরিবর্তে স্মৃতি হ্রাস পেতে পারে, যদি লক্ষ্যহীন তথ্য ভাগাভাগি করা হয় ।

ইঞ্জিনিয়ারিং সফটওয়্যারের বাস্তব বিশ্ব-বিশ্ব উদাহরণ

ইঞ্জিনিয়ারিং অ্যাপ্লিকেশন দ্বারা বিন্যাসের বিভিন্ন বৈশিষ্ট্য নির্মাণের জন্য ব্যবহৃত একটি CAD সিস্টেম। ব্যবহারকারীর বৈশিষ্ট্যের সাহায্যে বিভিন্ন জ্যামিতির আকৃতি নির্মাণের জন্য ফ্যাক্টরি ব্যবহার করা যাবে। একটি জটিল সম্মেলন আয়োজন করে পরবর্তী ইঞ্জিনের জন্য বিভিন্ন বস্তু প্রস্তুত করতে বিভিন্ন ধরনের কনফিগারেশন নির্মাণ করুন ও সেগুলির জন্য একটি একক ইঞ্জিন তৈরি করতে পারেন। একটি পরীক্ষামূলক ইঞ্জিনের সংস্করণ নির্মাণ করতে বিভিন্ন ধরনের কনফিগারেশন, প্রহিক মডেল এবং একটি প্রসেসিং সিস্টেমের জন্য একটি এক্সোপেটারিং সিস্টেমের উপর ক্লিক করতে পারে।

সূচনা: আপনার নকশাকে গঠন করতে দিন

একক, ফ্যাক্টরি এবং প্রটেকশন হচ্ছে ভিত্তিগত নকশার মত, কিন্তু সেগুলো কোন রৌপ্য বুলেট নয়। উদাহরণ স্বরূপ, বস্তুর জটিলতার বিষয়টি নিয়ন্ত্রণ করা, নতুন ধরনের জটিলতা এবং পরীক্ষা। যখন সন্দেহের বিষয় হচ্ছে পরিষ্কারকরণ এবং পরীক্ষা করা যায়- যখন কোন পরিস্থিতির সাথে খাপ খাইয়ে নিতে পারে তখন নতুন কোন পরিস্থিতির সৃষ্টি হবে।

এই তিনটে বিন্যাসের মাধ্যমে আপনি একটা বহুমুখী নকশা তৈরি করার, সেগুলোকে নকল করার জন্য প্রয়োজনীয় সরঞ্জামাদি ও সরঞ্জামাদি তৈরি করেছিলেন ।