Tuesday, February 20, 2024

সলিড প্রিন্সিপল

কাদের জন্যঃ Object-oriented programming language সম্পর্কে ধারণা আছে এমন মানুষ।

যা প্রয়োজনঃ class,inheritance,JavaScript সম্পর্কে পূর্ব ধারণা।

SOLID Principle:কোড/প্রোগ্রাম লেখার জন্য খুবই দরকারি এক নিয়ম। Object-oriented program কে সহজবোধ্য ও তদারকির সুবিধার জন্য Robert C Martin ২০০০ সনে SOLID principle প্রবর্তন করেন। Gamma et al এর বইয়ের অনেক পরে এই নীতি আসে। পাঁচটি গুরুত্বপূর্ণ নিয়ম নিয়ে তৈরি এটি; এক এক করে জেনে নেয়া যাক নিয়মগুলো:

Single Responsibility Principle: একটি class শুধু একটি কাজই করবে।

Open-Closed Principle: interface গুলোর ভেতরে কোন পরিবর্তন করা যাবে না তবে বাড়ানো যাবে।যেমন: Name interface এর ভেতর যেকোন পরিবর্তন একেবারে বন্ধ,তবে subclass এর মাধ্যমে এর বিকাশ ঘটানো যাবে। (যেমন: Normal, Formal subclass এখানে Name class ব্যবহার করছে। Nickname নামে আরেকটি subclass এর মাধ্যমে Name class এর বিকাশ /সম্প্রসারণ ঘটানো যায়|)

Liskov Substitution Principle: derived class object প্রতিস্থাপন করবে abstract class object কে। এখানে derived class object Normal/Formal প্রতিস্থাপন করেছে abstract class Name object কে; method show() কে ব্যবহারের মাধ্যমে এটি দেখানো হচ্ছে।

Interface Segregation Principle: কাজে মিল আছে এমন method গুলোকে একই দলে রাখা। Name interface টি ব্যবহার করা হচ্ছে নাম দেখানোর জন্য; first name,last name এসব এখানে পাওয়া যাবে। এমনিভাবে Address interface ব্যবহার করা যেত ঠিকানা দেখানোর জন্য।

Dependency Inversion Principle: High and low level modules নির্ভর করবে abstraction এর উপর; details নির্ভর করবে abstraction এর উপর; subclass অনুযায়ি নাম ছাপানোর জন্য এখানে high level module Transform নির্ভর করছে abstract class Name এর উপর।

উদাহরণ: class Name{
constructor(f,l,n){
this.f=f;
this.l=l;
this.n=n;
}
show(){
document.writeln(this.f+" "+this.l+" "+this.n);
}
}
class Normal extends Name{
constructor (f,l,n){
super(f,l,n);
}
show(){
document.writeln(this.f+" "+this.l+" "+this.n+"
");
}
}
class Formal extends Name{
constructor (f,l,n){
super(f,l,n);
}
show(){
document.writeln(this.l+" "+this.f+" "+this.n+"
");
}
}
class Transform {
constructor (a){this.a=a;}
prepare(){
this.a.show ();
}
}
var a=new Formal("T","W",05);
var t=new Transform (a);
t.prepare();

চেষ্টা করা যাক:SOLID principle মেনে একটি program লেখা যাক যেখানে একজন ছাত্রের নাম,রোল,শ্রেণি screen এ দেখা যাবে।

কৃতজ্ঞতাঃ এই লেখা তৈরি করতে দরকারি তথ্য নেয়া হয়েছে 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