Facade Pattern

একটা বিয়ের প্রোগ্রাম আয়োজন করতে হলে Mandatory যে কাজগুলো করতে হয় :
  1. খাবার আয়োজন (বাবুর্চির কাজ)
  2. চেয়ার টেবিল সাজানো, খাবার পরিবেশন (ডেকোরেটরের কাজ)
  3. বউ সাজানো (পার্লারের কাজ)
ইত্যাদি আরো অনেকগুলো আলাদা আলাদা Company এর সাথে কথা বলে চুক্তি ঠিক করতে হয় । যা খুবই কষ্টকর এবং খরচ সাপেক্ষ্য। কিন্তু এখন অনেক Event Management Company আছে যারা ঐসব আলাদা আলাদা Company এর সাথে চুক্তিবদ্ধ। তাই যে কেউ শুধুমাত্র Event Management Company এর সাথে চুক্তি করেই সবগুলো Service পেতে পারে।
Façade Pattern ঠিক এই কাজটাই করে একটা Object অন্য আরো অনেকগুলো Object এর সাথে Associated থাকে । এভাবে আমরা একটা Object এর সাথে অন্য আরো কিছু Object জুড়ে দিয়ে Centralized Structure দাঁড় করাতে পারি। যেটা দিয়ে আলাদা অনেক গুলো সুবিধা একসাথে পেতে পারি।
উদাহরণ হিসাবে যদি আমরা TeamPossible ইভেন্ট ম্যানেজমেন্ট ফার্মকে দিয়ে বিয়ের অনুষ্ঠানের কাজ গুলো করিয়ে নেই  Class Diagram টা দাঁড়ায়
Facade Pattern Class Diagram
এখানে TeamPossibleEventManagement কোম্পানি Cook, BeautyParlor, Decorator এই সার্ভিস গুলো দিয়ে থাকে । তাই TeamPossibleEventManagement এর মধ্যে Cook, BeautyParlor, Decorator কে Composition করা হয়েছে । উপরের ডায়াগ্রামের রম্বসের মতো ঐ চিহ্নই Composition । Composition  যেহেতু স্ট্রং রিলেশন বোঝায় । তাই যতক্ষণ TeamPossibleEventManagement এর Object থাকবে ততক্ষণ Cook, BeautyParlor, Decorator কেও ব্যবহার করতে পারবো । যাতে করে আমরা শুধুমাত্র TeamPossibleEventManagement এর মাধ্যমেই সকল সুবিধা পেতে পারি । 
এবার কোড লিখার পালা -  

TeamPossibleEventManagement এর মধ্যে Cook, BeautyParlor, Decorator অবজেক্ট গুলোকে Composition করে দিবো - 

InviteAEventManagement থেকে TeamPossibleEventManagement এর মাধ্যমে আমাদের প্রোগ্রাম আরেঞ্জ করিয়ে নিবো । লক্ষ্য করুন TeamPossibleEventManagement এর অবজেক্ট করলে Cook, BeautyParlor, Decorator এগুলোরও অবজেক্ট তৈরি হয়ে যাবে ।
আউটপুটঃ


THE END

Facade Pattern Facade Pattern Reviewed by hnjaman on July 05, 2018 Rating: 5

No comments:

Powered by Blogger.