Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 8.79 KB

DesignPattern.md

File metadata and controls

56 lines (42 loc) · 8.79 KB

ডিজাইন প্যাটার্ন (Design Pattern)

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

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

কেন দরকার ডিজাইন ডিজাইন প্যাটার্ন
১. ডিজাইন প্যাটার্ন হল সাধারন কিছু সমস্যার এমন সমাধান যেটা যাচাই করা এবং সর্বজনগৃহীত। যদি কেউ কোডিং করার সময় এমন সমস্যায় নাও পড়ে তারপর ও এটি ফলো করে অনেক ধরনের সমস্যা সমাধান করা যায়।
২. ডিজাইন প্যাটার্ন হল কিছূটা সবাই বুঝতে পারে এমন একটা ভাষা। ফলে টিমের সবাই এবং অন্যান্য ডেভোলপার খুব সহজেই কোডিং প্যাটার্ন বুঝতে পারে কারন এটি একটি স্ট্যান্ডার্ড। উদাহরণস্বরূপ কেঁউ যদি সিঙ্গেলটন প্যাটার্নের কোড লিখে তাহলে অন্য একজন দেখেই বুঝতে পারবে এটা সিঙ্গেলটন প্যাটার্ন।

ডিজাইন প্যাটার্ন ৩ ধরনের হয় সাধারণতঃ

  • Creational Design Pattern
  • Structural Design Pattern
  • Behavioral Design Pattern

ক্রিয়েশনাল ডিজাইন প্যাটার্ন (Creational Design Pattern)
ক্রিয়েশনাল ডিজাইন প্যাটার্ন হল কিভাবে আমরা অবজেক্ট তৈরি করতে পারি তার বিভিন্ন পদ্ধতি। কোন বড় প্রোজেক্টে কাজ করার সময় যদি নরমালি যে ভাবে তৈরি করি সেভাবেই করতে থাকি তাহলে প্রোজেক্টটা অনেক বড় হয়ে গেলে এটা জটিল অবস্থায় রূপ নিবে। ক্রিয়েশনাল ডিজাইন প্যাটার্ন অবজেক্ট তৈরি করার প্রক্রিয়াটা নিয়ন্ত্রন করে। বিভিন্ন ধরনের ক্রিয়েশনাল ডিজাইন প্যাটার্ন আছে, সেগুলো হলঃ

স্ট্রাকচারাল ডিজাইন প্যাটার্ন (Structural Design Pattern)
স্ট্রাকচারাল ডিজাইন প্যাটার্ন হল কিভাবে আমরা অবজেক্ট আর ক্লাস তৈরি করব এবং সেটাকে একটা বড় স্ট্রাকচারে রূপ দেব। এই প্যাটার্ন বিভিন্ন অবজেক্টের ভেতরের রিলেশনকে সহজ ভাবে উপস্থাপন করে। বিভিন্ন ধরনের ছোট ছোট অংশ যখন এক সাথে একটা স্ট্রাকচা্র গঠন করে এবং এর একটা অংশ পরিবর্তন হলে পুরো গঠনের কোন প্রভাব পড়বে না। বিভিন্ন ধরনের ক্রিয়েশনাল ডিজাইন প্যাটার্ন আছে, সেগুলো হলঃ

বিহ্যাভিওরাল ডিজাইন প্যাটার্ন (Behavioral Design Pattern)
বিহ্যাভিওরাল ডিজাইন প্যাটার্ন তৈরি করা হয় অবজেক্ট গুলোর ভেতরকার যোগাযোগ এবং কার্যাবলীর উপর লক্ষ্য রেখে। অবজেক্ট গুলো খুব সহজেই ভেতরকার তথ্য আদান প্রদান করে এবং একজনের পরিবর্তনের জন্য অন্য অবজেক্ট কার্যক্রম বাধাগ্রস্থ হয়না। তাদেরকে loosely coupled হতে হয়।