Learn More

Topics :

PHP ও সফটওয়্যার ইঞ্জিনিয়ারিংয়ে ব্যবহৃত সব ডিজাইন প্যাটার্নের তালিকা

February 4, 2025
No Comments
1 min read

1. Creational Design Patterns (অবজেক্ট তৈরি সম্পর্কিত প্যাটার্ন)

এই প্যাটার্নগুলো অবজেক্ট তৈরি ও ম্যানেজ করার প্রক্রিয়াকে আরও সহজ ও নিয়ন্ত্রিত করে।

1. Singleton Pattern

➡ একটি ক্লাসের শুধুমাত্র একটি ইনস্ট্যান্স তৈরি হয় এবং সেটি গ্লোবালি ব্যবহার করা যায়।
ব্যবহার: ডাটাবেস কানেকশন, লগার, কনফিগারেশন সেটিংস।

2. Factory Pattern

➡ একটি ফ্যাক্টরি ক্লাস ব্যবহার করে নির্দিষ্ট প্রকারের অবজেক্ট তৈরি করা হয়।
ব্যবহার: যখন একাধিক অবজেক্টের ধরন রয়েছে এবং কোনটি তৈরি করতে হবে তা নির্ধারণ করতে হবে।

3. Abstract Factory Pattern

➡ একটি ফ্যাক্টরি যা বিভিন্ন ফ্যাক্টরি ক্লাস তৈরি করে, যারা নির্দিষ্ট ধরনের অবজেক্ট তৈরি করতে পারে।
ব্যবহার: যখন বিভিন্ন অবজেক্ট ফ্যামিলি তৈরি করতে হয়।

4. Builder Pattern

➡ অবজেক্ট তৈরি করার স্টেপ-বাই-স্টেপ প্রক্রিয়া আলাদা করে দেওয়া হয়।
ব্যবহার: জটিল অবজেক্ট তৈরি করা যেমন PDF ডকুমেন্ট, HTML রিপোর্ট।

5. Prototype Pattern

➡ একটি অবজেক্ট ক্লোন করে নতুন অবজেক্ট তৈরি করা হয়।
ব্যবহার: যখন অবজেক্ট তৈরি করা ব্যয়বহুল হয়, এবং ক্লোন করা সহজ হয়।

2. Structural Design Patterns (অবজেক্টের স্ট্রাকচার সম্পর্কিত প্যাটার্ন)

এই প্যাটার্নগুলো অবজেক্টের গঠন এবং একে অপরের সাথে সম্পর্ক কিভাবে কাজ করবে তা নির্ধারণ করে।

6. Adapter Pattern

➡ এক ইন্টারফেসকে অন্য ইন্টারফেসে রূপান্তর করে যাতে দুইটি ভিন্ন সিস্টেম একসাথে কাজ করতে পারে।
ব্যবহার: পুরাতন কোড নতুন সিস্টেমের সাথে সংযুক্ত করতে।

7. Bridge Pattern

➡ দুটি ভিন্ন সিস্টেমের মধ্যে সেতু তৈরি করে, যাতে তারা স্বাধীনভাবে কাজ করতে পারে।
ব্যবহার: ভিন্ন প্ল্যাটফর্মে কোড চালানো যেমন Windows এবং Linux।

8. Composite Pattern

➡ একটি ট্রি স্ট্রাকচার তৈরি করা হয় যেখানে অবজেক্ট ও সাব-অবজেক্ট একইভাবে ব্যবহার করা যায়।
ব্যবহার: UI কম্পোনেন্ট (বাটন, মেনু, সাবমেনু)।

9. Decorator Pattern

➡ নতুন ফিচার যোগ করার জন্য মূল অবজেক্ট পরিবর্তন না করে ডেকোরেটর ক্লাস ব্যবহার করা হয়।
ব্যবহার: কফি শপে বিভিন্ন টপিং যোগ করা (দুধ, চিনি, চকলেট)।

10. Facade Pattern

➡ একটি সাধারণ ইন্টারফেস তৈরি করা হয় যাতে ব্যাকএন্ডের জটিল লজিক ব্যবহার করা সহজ হয়।
ব্যবহার: ইমেল পাঠানোর জন্য PHPMailer লাইব্রেরি।

11. Flyweight Pattern

➡ অবজেক্ট রিইউজ করা হয়, যাতে মেমোরি ব্যবহার কম হয়।
ব্যবহার: গেম ডেভেলপমেন্ট (একই টাইপের শত্রু চরিত্র)।

12. Proxy Pattern

প্রক্সি অবজেক্ট ব্যবহার করে মূল অবজেক্টে অ্যাক্সেস নিয়ন্ত্রণ করা হয়।
ব্যবহার: ক্যাশিং, এক্সেস কন্ট্রোল, লোড-ব্যালেন্সিং।

3. Behavioral Design Patterns (অবজেক্টের আচরণ নিয়ন্ত্রণ সম্পর্কিত প্যাটার্ন)

এই প্যাটার্নগুলো অবজেক্টগুলোর মধ্যে যোগাযোগআচরণ নিয়ন্ত্রণ করে।

13. Chain of Responsibility Pattern

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

14. Command Pattern

➡ একটি অপারেশনকে অবজেক্ট হিসেবে সংরক্ষণ করা হয় যাতে এটি প্রয়োজনে আবার চালানো যায়।
ব্যবহার: Undo/Redo ফিচার।

15. Interpreter Pattern

➡ একটি ব্যবহারকারীর ইনপুটকে পার্স করে তার মান বের করা হয়
ব্যবহার: কাস্টম ক্যালকুলেটর, SQL কুয়েরি পার্সার।

16. Iterator Pattern

একটি কালেকশনকে লুপ করে ঘুরিয়ে ডাটা রিটার্ন করা হয়।
ব্যবহার: PHP-এর Iterator Interface

17. Mediator Pattern

একটি মধ্যস্থতাকারী (Mediator) ব্যবহার করে অবজেক্টগুলোর মধ্যে সরাসরি যোগাযোগ কমানো হয়
ব্যবহার: চ্যাট রুম যেখানে ব্যবহারকারীরা চ্যাট করতে পারে।

18. Memento Pattern

অবজেক্টের পূর্বের অবস্থা সংরক্ষণ করা হয়, যাতে প্রয়োজনে পুরনো অবস্থায় ফিরে যাওয়া যায়।
ব্যবহার: Undo/Redo ফিচার।

19. Observer Pattern

➡ এক অবজেক্ট আপডেট হলে অন্যান্য অবজেক্টগুলিও স্বয়ংক্রিয়ভাবে আপডেট হয়
ব্যবহার: ব্লগ সাবস্ক্রিপশন, ইভেন্ট লিসেনার।

20. State Pattern

➡ অবজেক্টের স্টেট পরিবর্তনের উপর ভিত্তি করে তার আচরণ পরিবর্তন হয়।
ব্যবহার: ফাইল ডাউনলোডের বিভিন্ন স্টেট (Downloading, Completed, Failed)।

21. Strategy Pattern

একই কাজ করার বিভিন্ন কৌশল আলাদা ক্লাস দিয়ে ইমপ্লিমেন্ট করা হয়।
ব্যবহার: পেমেন্ট মেথড (PayPal, Credit Card)।

22. Template Method Pattern

একটি টেমপ্লেট ক্লাসে মূল স্ট্রাকচার তৈরি করা হয় এবং সাব-ক্লাসে কিছু অংশ কাস্টমাইজ করা হয়।
ব্যবহার: ওয়েবসাইটের থিম টেমপ্লেট।

23. Visitor Pattern

নতুন ফিচার যোগ করা হয়, কিন্তু মূল ক্লাস পরিবর্তন করা হয় না
ব্যবহার: XML/JSON ডাটা প্রসেসিং।

4. Architectural Patterns (সফটওয়্যার আর্কিটেকচার সম্পর্কিত প্যাটার্ন)

24. MVC (Model-View-Controller) Pattern

মডেল (ডাটা), ভিউ (UI), কন্ট্রোলার (লজিক) আলাদা রাখা হয়
ব্যবহার: Laravel, CodeIgniter।

25. Repository Pattern

ডাটাবেজ কোয়েরি ও বিজনেস লজিক আলাদা করা হয়
ব্যবহার: Laravel Repository Design।

5. Architectural Patterns (সফটওয়্যার আর্কিটেকচার সম্পর্কিত প্যাটার্ন)

এই ডিজাইন প্যাটার্নগুলো বড় স্কেল সফটওয়্যার আর্কিটেকচার ডিজাইন করতে ব্যবহৃত হয়।

24. MVC (Model-View-Controller) Pattern

➡ এটি সফটওয়্যার আর্কিটেকচারের সবচেয়ে জনপ্রিয় প্যাটার্ন যেখানে Model (ডাটা), View (UI), এবং Controller (লজিক) আলাদা রাখা হয়।
ব্যবহার: Laravel, CodeIgniter, Symfony ইত্যাদি।

25. MVVM (Model-View-ViewModel) Pattern

➡ এটি MVC-এর একটি সংস্করণ যেখানে ViewModel আলাদা করা হয়।
ব্যবহার: ফ্রন্টএন্ড লাইব্রেরি যেমন Vue.js, AngularJS।

26. Microservices Pattern

একটি বড় অ্যাপকে ছোট ছোট সার্ভিসে ভাগ করে আলাদাভাবে ডিপ্লয় ও মেইনটেইন করা হয়।
ব্যবহার: Cloud-based সফটওয়্যার, AWS Lambda, Kubernetes।

27. Layered Architecture Pattern

➡ সফটওয়্যারকে বিভিন্ন লেয়ারে ভাগ করা হয়, যেমন Presentation Layer, Business Logic Layer, Data Access Layer
ব্যবহার: এন্টারপ্রাইজ সফটওয়্যার, Spring Framework, Laravel।

28. Repository Pattern

ডাটাবেস এক্সেস লজিক ও বিজনেস লজিক আলাদা রাখা হয়
ব্যবহার: Laravel Repository Pattern, Domain-Driven Design (DDD)।

6. Concurrency Patterns (মাল্টিথ্রেডিং ও কনকারেন্সি সম্পর্কিত প্যাটার্ন)

এই ডিজাইন প্যাটার্নগুলো একই সাথে একাধিক কাজ করার জন্য ব্যবহৃত হয়।

29. Thread Pool Pattern

একটি নির্দিষ্ট সংখ্যক থ্রেড তৈরি করা হয়, এবং সেগুলো বারবার ব্যবহার করা হয়, নতুন থ্রেড না বানিয়ে।
ব্যবহার: ব্যাকগ্রাউন্ড প্রসেসিং, বড় সার্ভার অ্যাপ।

30. Monitor Object Pattern

একই রিসোর্স একাধিক থ্রেড যাতে একসাথে ব্যবহার না করতে পারে তা নিয়ন্ত্রণ করা হয়
ব্যবহার: ব্যাংকিং সফটওয়্যার যেখানে ব্যালেন্স একসাথে দুইজন পরিবর্তন করতে পারবে না।

31. Active Object Pattern

অবজেক্ট নিজে নিজে কাজ করতে পারে এবং অন্য অবজেক্টকে ব্লক না করেই ব্যাকগ্রাউন্ডে প্রসেস চালাতে পারে।
ব্যবহার: ভিডিও গেমস, মাল্টিথ্রেডিং অ্যাপ।

Related Post

YouTube Video

©2025 Linux Bangla | Developed & Maintaind by Linux Bangla.