Factory Method Pattern

Factory Method জানার আগে জানতে হবে Method কি ?

Method একটা ছাঁচের মতো, আপনার প্রয়োজনীয় উপকরণ(প্যারামিটার) ছাঁচের মধ্যে দিবেন, ছাঁচ সেটা নিজের ফর্মুলা মতো উপকরণ প্রসেস করে একটা সুগঠিত ব্যবহারযোগ্য ফলাফল ফেরত(রিটার্ন) দিবে । তাহলে বলতে পারি একটা নির্দিষ্ট প্রসেসের কাজেই আমরা Method লিখি ।

Factory Method হচ্ছে বিশেষ ধরনের Method, যেটা রিকোয়েস্টেড সার্ভিস ক্লাসের Object Return করে ।
আমরা আবার সেই TeamPossible ইভেন্ট ম্যানেজমেন্ট ফার্মের উদাহরণে ফিরে যায় যেটা Facade Pattern এ ব্যবহার করছিলাম, যারা নিচের সার্ভিস গুলো দিয়ে থাকে
  1. খাবার আয়োজন (বাবুর্চির কাজ)
  2. চেয়ার টেবিল সাজানো, খাবার পরিবেশন (ডেকোরেটরের কাজ)
  3. বউ সাজানো (পার্লারের কাজ)
কিন্তু এবার আর আমাদের একসাথে সব সার্ভিসের দরকার নেই । যার যেটা দরকার সেটা অর্ডার করলেই TeamPossible সরবরাহ করবে ।

শর্তমতো  Class Diagram টা দাঁড়ায় - 
Factory Method Class Diagram
এখানে আসল ম্যাজিক হচ্ছে GetService ক্লাসের callingService() মেথড । এটাই আমাদের Factory Method যেখানে প্রয়োজনমতো সার্ভিসের প্যারামিটার দিলে সেই সার্ভিস ক্লাসের Object create করে  রিটার্ন করবে ।



আমরা চাইলে abstract class Service টা বাদ দিতে পারি । যেহেতু আমাদের প্রত্যেকটা সার্ভিসের সার্ভিস মানি ও কারেন্ট অবস্থা জানতে হবে তাই একটা abstract class এর মধ্যে কমন মেথড লিখে অন্যান্য সার্ভিস ক্লাসে override করিয়ে যার যার মতো ইমপ্লিমেন্ট করে নিয়েছি । এই কাজ টা একটা Interface তৈরি করেও করা যেতে পারে ।
When to use abstract classes and when to use interfaces ?

নিচে দেখুন, আমরা এখানে যখন যার অবজেক্ট দরকার হচ্ছে সেটা তৈরি করিয়ে নিচ্ছি । আগে থেকে সবগুলোর অবজেক্ট তৈরি করে সিস্টেম ভারী করে রাখছি না । এই টেকনিক -কে বলে loose coupling । যখন দরকার হবে তখনই তৈরি করে নিবো, আগে থেকে তৈরি করে মেমোরি ভর্তি করে রাখবো না । loose coupling এর আরো অনেক খুঁটিনাটি বিষয় আছে যেগুলো ভিন্ন আর্টিকেলে বিস্তারিত আসবে আপাতত এটুক জানলেই চলবে ।





ধরুন আমরা Cook এর সার্ভিস চাচ্ছি । তাহলে Cook এর অবজেক্ট তৈরি হবে । এবং নিচের মতো আউটপুট পাবো । একইভাবে এই  callingService() মেথড দিয়ে অন্য সার্ভিসগুলোও পেতে পারি । 

আউটপুট :


পরামর্শ 
প্রোগ্রামিং এ নতুন কিছু শিখে ভালো মতো আয়ত্ত করতে চাইলে কোড লেখা বা ঐ বিষয়ের problem solving এর আর কোন বিকল্প নেই । এখন HackerRank থেকে Factory Method Pattern এর প্রব্লেমটা সল্ভ করে ফেলুন । মনে রাখবেন, যায় শিখুন আর যতবারই পড়ুন না কেনো কোড না লিখলে সেটা আপনার আয়ত্তে আসবে না ।


THE END

Factory Method Pattern Factory Method Pattern Reviewed by hnjaman on July 08, 2018 Rating: 5

No comments:

Powered by Blogger.