কাদের জন্যঃ Object-oriented programming language সম্পর্কে ধারণা আছে এমন মানুষ।
যা প্রয়োজনঃ class,inheritance,JavaScript সম্পর্কে পূর্ব ধারণা।
Façade Design Pattern:এটি অসংখ্য interfaces এর মাঝে একটি সহজ ও সমন্বিত interface তৈরি করে দেয় যাতে এসব interfaces এর কাজ ও সুবিধা এই সহজ interface ব্যবহার করে পাওয়া যায়। এর ফলে program কে জটিলতা এড়িয়ে আরো সহজ ও ব্যবহার যোগ্য করে তোলা সম্ভব হয়। উদাহরণে টিভি রিমোটের ব্যবহার দেখানো হয়েছে। Remote interface টি Volume,Brightness ও Basic interfaces এর কাজ ও সুবিধা পেতে একটি একক interface হিসেবে কাজ করছে।Basic interface টিভি অন,অফ আর মিউটের কাজ করে দিচ্ছে। Volume ও Brightness interface দু'টিতে শব্দ ও ছবির উজ্জ্বলতা বাড়ানো বা কমানোর methods দেয়া আছে। এছাড়া টিভি অন করলে আমরা যেই সাধারণ শব্দ ও ছবি পাই সেটি পেতে default নামে একটি method রয়েছে Volume ও Brightness interface দু'টিতে ।
উদাহরণঃ
class Basic{
constructor(){}
on(){
document.writeln("TV is on...
");
}
off(){
document.write(" TV is off...
");
}
mute(){document.write("TV is muted...
");}
unmute(){document.write("TV is unmuted...
");}
}
class Volume{
constructor (){}
default(){document.write("Default volume
");}
up(){
document.write("Up the volume...
");
}
down(){
document.write("Down the volume...
");
}
}
class Brightness{
constructor(){}
default(){document.write("Default brightness...
");}
plus(){
document.write("More brightness...
");
}
minus(){
document.write("Less brightness...
");
}
}
class Remote{
constructor (g,s,l){
this.g=g;
this.s=s;
this.l=l;
}
on(){
this.g.on();
this.s.default();
this.l.default();
}
off(){
this.g.off();
}
vPlus(){
this.s.up();
}
vMinus(){
this.s.down();
}
bPlus(){
this.l.plus();
}
bMinus(){
this.l.minus();
}
silence(){
this.g.mute();
}
unsilence(){
this.g.unmute();
}
}
var c=new Basic();
var v=new Volume ();
var a=new Brightness ();
var r=new Remote(c,v,a);
r.on();
r.vPlus();
r.bPlus();
r.silence();
r.off();
চেষ্টা করা যাকঃএকটি গাড়ির ড্যাশবোর্ড তৈরি করতে হবে।
Dashboard নামে একটি interface যার ভেতর start()[Ignition, Lock], acclim()[AC], stereo()[Music],left()[Indicator],right()[Indicator],stop()[Ignition,Lock,Music]নামের methods রয়েছে। ব্র্যাকেটে Ignition,Lock ,AC,Music ও Indicator নামের interface ব্যবহার করার কথা বলা হয়েছে। interface গুলোতে নিচের methods ব্যবহার করতে হবে:
Ignition—start(),stop ();
Lock—lockDoor(),unlockDoor();
AC--on(),off ();
Music—on(),off (),volumeUp(),volumeDown();
Indicator—leftIndic(),rightIndic();
কৃতজ্ঞতাঃ এই লেখা তৈরি করতে দরকারি তথ্য নেয়া হয়েছে Wikipedia, আকর বই "'Design Patterns:Elements Of Reusable Object-Oriented Software' by Eric Gamma,Richard Helm,Ralph Johnson and John Vlissides(Addisson-Wesley.1994)" ও লেখকের তৈরি করা নানা program থেকে।
মন্তব্য ও যোগাযোগঃ mrh4478@gmail.com
No comments:
Post a Comment