কাদের জন্যঃ Object-oriented programming language সম্পর্কে ধারণা আছে এমন মানুষ।
যা প্রয়োজনঃclass,inheritance,composition,JavaScript সম্পর্কে পূর্ব ধারণা।
Builder: এটি object এর গঠনকে তার প্রতিনিধিত্ব থেকে আলাদা করে। সাধারণত object যদি complex হয়ে থাকে তবে সেটির creation এর ভার দেয়া হয় অন্য আরেকটি class/interfaceকে যা Builder নামে পরিচিত।এতে creation এর দরকারি methods থাকে। Concrete Builder এটিকে implement এর কাজ করে থাকে আর object এর বিভিন্ন রুপের গঠন প্রক্রিয়ার সাথে জড়িত । আরেকটি class থাকে যা Director নামে পরিচিত যা মূলত: object এর গঠন কাজকে তদারক করে থাকে Builder object এর সাহায্যে। উদাহরণে Lamp গঠন প্রক্রিয়াকে তুলে ধরা হয়েছে। এখানে BedLampBuilder class টি Bed Lamp গঠন করছে আর Director তা তদারক করছে। buildStand() আর buildShade() methods ঠিক করছে Lamp এর Stand আর Shade কি ধরণের হবে। Director এর constructor এ তিনটি argument দেয়া হয়েছে : একটি Builder object আর দু'টি হল user এর সরবরাহ করা string arguments, যা Stand আর Shade কিরকম হবে তা বলে দিচ্ছে।
উদাহরণ:
class Lamp{
constructor(){
this.l=" ";
this.s=" ";
}
Stand(t){this.l=t;}
Shade(s){this.s=s;}
des(){document.write(this.l+ ", "+this.s);}
}
class Builder{
constructor(){}
buildShade(s){}
buildStand(t){}
getLamp(){}
}
class BedLampBuilder extends Builder{
w=null;
constructor(){
super();
var q=new Lamp ();
this.w=q;
}
buildStand(t){this.w.Stand(t);}
buildShade(s){ this.w.Shade(s);}
getLamp(){return this.w;}
}
class Director{
constructor(b,s,c){
this.b=b;
this.b.buildStand(s);
this.b.buildShade(c);
}
getL(){
var a=this.b.getLamp();
return a;
}
}
var d=new Director(new BedLampBuilder(),"Black Stand","Yellow Shade");
d.getL().des();
চেষ্টা করা যাক:Progrgram টি আবার লিখি। এবার Table Lamp এর জন্য।
কৃতজ্ঞতাঃ এই লেখা তৈরি করতে দরকারি তথ্য নেয়া হয়েছে 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