জাভাতে নকশা নিদর্শন এগুলি কী এবং সেগুলি কী নিয়ে গঠিত?

আপনি কি জানতে চান কি জাভাতে নকশা নিদর্শন? আপনি সঠিক নিবন্ধে এসেছেন, কারণ এখানে আমরা আপনাকে সেগুলি কী তা বলব, পাশাপাশি আমরা আপনাকে তাদের শ্রেণীবিভাগ এবং আরও কিছু জানাব।

ডিজাইন-প্যাটার্ন-ইন-জাভা -1

জেনেরিক সমস্যা সমাধানে অবজেক্ট ডায়াগ্রাম।

জাভাতে ডিজাইন প্যাটার্ন

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

অতিরিক্ত তথ্যের জন্য, আমরা আপনাকে আমাদের নিবন্ধটি পড়ার জন্য আমন্ত্রণ জানাই: অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং: সংজ্ঞা।

সংশ্লিষ্ট বুনিয়াদি

যেমন আমরা সবসময় বলে এসেছি, প্রোগ্রামিং একটি বিচ্ছিন্ন ঘটনা নয়, তাই কিছু সম্পর্কিত ধারণা মনে রাখা সবসময় গুরুত্বপূর্ণ। এই উপলক্ষে, নিম্নলিখিত দিকগুলি উল্লেখ করা যথেষ্ট:

জাভা প্রোগ্রামিং ভাষা

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

এই শেষ দিকটিতে, আমরা ওয়েব পরিষেবা সম্পর্কিত সমস্ত অ্যাপ্লিকেশনগুলির উপরে উল্লেখ করতে পারি। যেমন: মোবাইল অ্যাপ্লিকেশন, ডেস্কটপ, সার্ভার, অন্যদের মধ্যে।

অন্যদিকে, জাভা বস্তু ভিত্তিক প্রোগ্রামিং দৃষ্টান্তের অন্তর্গত। এই বিষয়ে, এর প্রকৃতি সত্ত্বেও, এটি একটি নির্ভরযোগ্য, নিরাপদ এবং সহজে ব্যবহারযোগ্য ভাষা হিসাবে বিবেচিত হয়।

উপরন্তু, কম্পিউটার স্থাপত্য নির্বিশেষে যেকোন জাভা ভার্চুয়াল মেশিনে চালাতে সক্ষম হওয়ার সুবিধা রয়েছে। অন্য কথায়, জাভা একটি বহনযোগ্য প্রোগ্রামিং ভাষা।

ডিজাইন-প্যাটার্ন-ইন-জাভা -2

নকশা প্যাটার্ন

একটি নকশা প্যাটার্ন একটি নকশা সমস্যার সমাধান, যা বস্তু ভিত্তিক প্রোগ্রামিংয়ে ঘন ঘন ঘটে। উপরন্তু, এই ডায়াগ্রামে শ্রেণীর দ্বারা বস্তুর বিবরণ, সেইসাথে সম্পর্কগুলি যা তাদের সাথে সংযুক্ত রয়েছে।

অন্যদিকে, এটি উল্লেখ করা গুরুত্বপূর্ণ যে সাধারণভাবে নকশা নিদর্শনগুলি প্রোগ্রামারদের পূর্ববর্তী অভিজ্ঞতার ফলাফল। উপরন্তু, জাভাতে নকশা নিদর্শনগুলিতে কোন তত্ত্ব নেই, যেমন প্রোগ্রামিং এর অন্যান্য উপাদানগুলির সাথে ঘটে; অ্যালগরিদম

জাভাতে ডিজাইন প্যাটার্ন কি?

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

জাভাতে ডিজাইন প্যাটার্ন কি?

সাধারণভাবে, আমরা 23 এর কথা বলতে পারি জাভাতে নকশা নিদর্শন। এই বিষয়ে, 1995 সালে ডেসিং প্যাটার্নস বইয়ের মাধ্যমে এগুলি প্রথমবারের মতো উন্মোচিত হয়েছিল।

অন্যদিকে, যেমনটি আমরা আগেই বলেছি, সম্ভাব্য নতুন সমস্যার সমাধানের জন্য এই নিদর্শনগুলি অপরিহার্য। উপরন্তু, তারা অবজেক্ট-ভিত্তিক দৃষ্টান্তে বিশেষ প্রোগ্রামারদের পূর্ব অভিজ্ঞতা থেকে উদ্ভূত, পরিচিত সমস্যার উত্তর।

জাভাতে ডিজাইন প্যাটার্নের ধরন

সাধারণভাবে, 23 টি মৌলিক নকশার নিদর্শনগুলির প্রতিটিকে তিনটি সাধারণ ধরণের মধ্যে একটিতে শ্রেণিবদ্ধ করা হয়েছে জাভাতে নকশা নিদর্শন যে বিদ্যমান। এইভাবে, নীচে আমরা তাদের প্রতিটি সম্পর্কে বিস্তারিত দেখাব।

ডিজাইন-প্যাটার্ন-ইন-জাভা -3

নির্মাণ নিদর্শন

নির্মাণের নিদর্শনগুলির প্রধান কাজ হল বস্তুর সৃষ্টি সংগঠিত করা, কংক্রিট ক্লাসের ব্যবহারকে পরিবেশন করা এবং তাদের মধ্যে সম্পর্কের ক্ষেত্রে ইন্টারফেসগুলিকে প্রচার করা। এই শ্রেণীর নিদর্শনগুলির মধ্যে রয়েছে:

বিমূর্ত কারখানা

নির্দিষ্ট শ্রেণী যার মাধ্যমে বস্তু গঠিত হয় তা বিবেচনায় না নিয়ে এটি একটি পরিবার হিসাবে গোষ্ঠীভুক্ত বস্তু তৈরির জন্য দায়ী।

নির্মাতা

এটি তাদের বাস্তবায়ন নির্বিশেষে জটিল বস্তু তৈরির সুযোগ দেয় বা অন্য কথায়, বিভিন্ন বাস্তবায়নের মাধ্যমে।

কারখানার পদ্ধতি

এই প্যাটার্নের প্রধান কাজ হল নির্দিষ্ট সাবক্লাসে কোন বস্তুর সৃষ্টি করা। এই ক্ষেত্রে, এটি একটি বিমূর্ত পদ্ধতি ব্যবহারের মাধ্যমে অর্জন করা হয়।

প্রোটোটাইপ

এটি বিদ্যমান বস্তুর নকল বা ক্লোনিং থেকে প্রোটোটাইপ থেকে নতুন বস্তু তৈরির সুবিধা প্রদান করে।

একক বস্তু

এই প্যাটার্নের কাজ হল কেবলমাত্র একটি উদাহরণ আছে এমন ক্লাসগুলির অস্তিত্ব পরিচালনা করা, সেইসাথে একটি পদ্ধতি প্রদান করা যা এই উদাহরণটি ফেরত দিতে সক্ষম।

এই বিষয়ে, নিম্নলিখিত ভিডিওতে আপনি আরও তথ্য দেখতে পারেন।

কাঠামোর নিদর্শন

তাদের অংশের জন্য, কাঠামোগত নিদর্শনগুলি শ্রেণীর শ্রেণিবিন্যাস এবং তাদের মধ্যে সম্পর্কযুক্ত সম্পর্কগুলি সংগঠিত করার দায়িত্বে রয়েছে। এই শ্রেণিবিন্যাসের মধ্যে নিম্নলিখিতগুলি রয়েছে:

এডাপটার

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

সেতু

এই প্যাটার্নের প্রধান কাজ হল একটি শ্রেণি শ্রেণিবিন্যাসের ধারণাগত দিকগুলি এর বাস্তবায়ন থেকে বিচ্ছিন্ন করা। অন্য কথায়, এই প্যাটার্নটি একটি বস্তুর বাস্তবায়নের দায়িত্বে রয়েছে।

যৌগিক

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

প্রসাধক

এটি একটি বস্তুর পরিপূরক হওয়ার জন্য নতুন কার্যকারিতা, প্রধানত গতিশীল, যোগ করতে ব্যবহৃত হয়। এই ক্ষেত্রে, এই প্যাটার্নের ফলাফল একটি বিদ্যমান বস্তুর প্রতিস্থাপন।

এই প্যাটার্ন সম্পর্কে, আপনি নিম্নলিখিত ভিডিওর মাধ্যমে আরও তথ্য পেতে পারেন।

অট্টালিকার সদরের বহির্ভাগ

এর প্রধান উদ্দেশ্য বস্তুর একটি ইন্টারফেসের ব্যবহার সহজতর করা, যাতে তাদের মধ্যে বেশ কয়েকটি পুনrouগঠিত হয় এবং একত্রিত হয়। পূর্ববর্তী প্যাটার্নের মতো, শেষ ফলাফল হল বস্তুর একটি সিরিজের প্রতিস্থাপন।

ফ্লেওয়েট

সাধারণ পরিভাষায়, ফ্লেওয়েট প্যাটার্ন একটি সিরিজ অবজেক্টের ভাগাভাগি প্রক্রিয়ার জন্য দায়ী, বিশেষ করে যেগুলি অত্যন্ত সূক্ষ্ম গ্রানুলারিটি রয়েছে। উপরন্তু, এটি তাদের একটি স্বাধীন রাষ্ট্র রাখার জন্য দায়ী।

প্রক্সি

প্রক্সি প্যাটার্নের প্রধান কাজ হল এমন একটি বস্তু তৈরি করা যা অন্যের দ্বারা প্রতিস্থাপিত হতে পারে, যার অ্যাক্সেসের সম্পূর্ণ নিয়ন্ত্রণ রয়েছে। এই বিষয়ে, এর উদ্দেশ্য মূলত বস্তুর অপ্টিমাইজেশান এবং সুরক্ষার ক্ষেত্রে আদর্শ শর্ত প্রদান করা।

আচরণের নিদর্শন

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

দায়িত্বের শিকল

এর নাম থেকে বোঝা যায়, এই প্যাটার্নটি বস্তুর একটি শৃঙ্খল তৈরি বোঝায়, যাতে যখন তাদের মধ্যে কেউ একটি নির্দেশের সাড়া দিতে পারে না, তখন পরবর্তী লিঙ্কটি সংশ্লিষ্ট প্রতিক্রিয়া দিতে পারে।

আদেশ

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

অনুবাদক

এটি ব্যাকরণগত বস্তুর মাধ্যমে একটি ভাষার প্রতিনিধিত্ব প্রদানের সম্ভাবনাকে নির্দেশ করে। এটি যাতে সেই ভাষার লিখিত অভিব্যক্তিগুলি সহজেই মূল্যায়ন এবং ব্যাখ্যা করা যায়।

আপনি যদি এটি সম্পর্কে আরও তথ্য চান তবে আপনি নীচের ভিডিওটি দেখতে পারেন।

আইট্রেটার

এর প্রধান কাজ হল, ব্যবহারকারীদের তাদের বাস্তবায়ন সম্পর্কিত দিকগুলি জানার প্রয়োজন ছাড়াই বস্তুর একটি গোষ্ঠীতে অনুক্রমিক অ্যাক্সেসের অনুমতি দেওয়া।

মধ্যস্থ

এর নাম থেকে বোঝা যায়, এই প্যাটার্নটি এমন একটি বস্তু তৈরির জন্য দায়ী যা বস্তুর মিথস্ক্রিয়াগুলির মধ্যে মধ্যস্থতাকারী হিসাবে কাজ করে এবং তাদের সাথে সরাসরি যোগাযোগ না করে।

অভিজ্ঞান

সাধারণ ভাষায়, এটি অন্যতম গুরুত্বপূর্ণ নিদর্শন, যেহেতু তিনিই বস্তুর অবস্থা পুনরুদ্ধার এবং সুরক্ষার দায়িত্বে আছেন। এই বিষয়ে, আমাদের অবশ্যই লক্ষ্য করতে হবে যে এই প্যাটার্নের মধ্যে একটি মৌলিক শর্ত হল ক্লাসের এনক্যাপসুলেশনের প্রতি সম্মান।

পর্যবেক্ষক

এই প্যাটার্নের প্রধান কাজ হল বিষয়টিতে ঘটে যাওয়া পরিবর্তনগুলি পর্যবেক্ষকদের অবহিত করা, যাতে তারা তাদের অবস্থা আপডেট করতে পারে।

রাষ্ট্র

এই প্যাটার্নের উদ্দেশ্য বোঝা বেশ সহজ, কারণ এটি একটি বস্তুর অভ্যন্তরীণ অবস্থার উপর ভিত্তি করে তার আচরণ পরিবর্তন করার সুযোগ দেওয়ার দায়িত্বে রয়েছে।

কৌশল

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

টেমপ্লেট পদ্ধতি

এই প্যাটার্নটি একটি বস্তুর ক্রিয়াকলাপ তৈরি করে এমন পর্যায় সম্পর্কে সংশ্লিষ্ট প্রতিবেদন তৈরির দায়িত্বে রয়েছে, যা উপশ্রেণীতে বর্ণিত। অন্য কথায়, এটি সাবক্লাসগুলিকে কিছু পর্যায়ের দায়িত্ব দেওয়ার বিষয় যা কোনও বস্তুর ক্রিয়াকলাপ তৈরি করে।

পরিদর্শক

এটি একটি শ্রেণীর বস্তুর উপাদানগুলির সাথে সম্পর্কিত একটি প্রয়োজনীয় ক্রিয়াকলাপ নির্মাণের জন্য দায়ী, তাদের শ্রেণীতে কোনও পরিবর্তন না ঘটে। সংক্ষেপে, এই প্যাটার্নটি বস্তুর একটি সিরিজে নতুন ক্রিয়াকলাপ যুক্ত করার দায়িত্বে রয়েছে।

জাভাতে লেআউট প্যাটার্নের সুবিধা

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

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

কোন ডিজাইনের প্যাটার্ন আমাদের সমস্যার জন্য উপযুক্ত তা কিভাবে চিনবেন?

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

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

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


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: অ্যাকিউলিডিড ব্লগ
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।