Inheritance & Composition: Design patterns এ আমরা অসংখ্যবার inheritance ও composition এর মুখোমুখি হয়েছি। এই দু'টি term এবং আরো কিছু জরুরি term এর উপর ছোট আলোচনার দায় অনুভব করছি,নাহলে design patterns নিয়ে আলোচনা অসম্পূর্ণ থেকে যাবে। বিদ্যমান software ব্যবহার করে নতুন software তৈরির উপায় হচ্ছে inheritance ও composition। Inheritance এ base class/super class এর member গুলো subclass/derived class ব্যবহার করতে পারে। এটিকে "is-a" relationship হিসেবেও উল্লেখ করা হয়। কারণ derived class এর object কিন্তু superclass এরও object ("Every object of derived class is also an object of the inherited/superclass ")। উদাহরণে class B হল class A এর subclass এবং Bএর say() মেথড call করলে তা superclass A এর des() মেথডকে call করছে।
উদাহরণ:
class A {
constructor(){}
des(){return " A is here!";}
}
class B extends A{
constructor(){
super();
}
say(){document. write("Inside B:");
return super.des();}
}
var s=new B();
document.write(s.say());
Composition এ এক বা একাধিক class কে অন্য class এর definition এ ব্যবহার করা হয়। এটিকে " has-a" relationship হিসেবেও উল্লেখ করা হয়। কারণ নতুন যেই class তৈরি করা হচ্ছে (Composite class,এটিকে Composite design pattern এর সাথে মেলাবেন না) তাতে অন্য class(Composed class) এর member আছে ("Objects of composite class have objects of composed class as members")।উদাহরণে class C তে class A এর object কে member হিসেবে নিচ্ছে আর C এর tell() মেথডে Aএর des() মেথডকে ব্যবহার করা হচ্ছে।
উদাহরণ:
class A {
constructor(){}
des(){return " A is here!";}
}
class C{
a=new A();
constructor (){}
tell(){
document. write("Inside C:");
return this.a.des();}
}
var e=new C();
document. write(e.tell());
কৃতজ্ঞতাঃ এই লেখা তৈরি করতে দরকারি তথ্য নেয়া হয়েছে 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