এই পোস্টে ব্যাখ্যা দেওয়া হলো SOLID এর। যা অবজেক্ট ওরিয়েন্টেড ডিজাইনে বহুল ব্যবহৃত। SOLID এর পুরো অর্থ হলো - S – Single Responsibility Principle (SRP) O – Open Closed Principle (OCP) L – Liskov Substitution Principle (LSP) I – Interface Segregation Principle (ISP) D – Dependency Inversion Principle (DIP) Single Responsibility Principle (SRP) বলছে - A class should have one, and only one, reason to change. এর মানে হচ্ছে , আমাদের একেকটি ক্লাসকে অন্তত একটি এবং সর্বোচ্চ একটি কাজেই ব্যবহার করতে হবে। ধরা যাক , Bank management system প্রজেক্টে , একটি ক্লাস খোলা হলো account, এখানে দুইটি মেথড আছে = registration, deposite । একটি ক্লাসেই টাস্ক পড়লো দুইটি। আদতে সমস্যা না থাকলেও এটি ভাল ওওপি ডিজাইন না কারণ এটি কে ভঙ্গ করছে। দুইটি কাজ দুই ক্লাসে করলে SRP মেইন্টেইন হবে। Open Closed Principle (OCP) বলছে - You should be able to extend a classes behavior, without modi...
শেষ আর্টিকেলে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং কি এবং কেন প্রয়োজন তাঁর আলোচনা করার চেষ্টা করা হয়েছে। একটি অবজেক্ট ওরিয়েন্টেড ডিজাইন কেমন হতে পারে সেটি দেখানো হয়েছিল। সেগুলো যখন আমরা কোন প্রোগ্রামিং ল্যাংগুয়েজে কোড লিখে ইমপ্লিমেন্ট করব , তখন আমাদেরকে নতুন কিছু কনসেপ্টের আশ্রয় নিতে হচ্ছে যেমন ক্লাস , মেথড , ইন্টারফেস ইত্যাদি। ক্লাসের কাজ কি ? ক্লাস হচ্ছে আমরা যেই অবজেক্টটার কথা চিন্তা করলাম , তাঁর একটা ব্লুপ্রিন্ট বলতে পারি। ইন্টারে পড়ে আসা প্রাণীদের শ্রেণীবিন্যাসের সাথে এর সামঞ্জস্যতা রয়েছে। যেমন আমি বলছি , মানুষ মাম্মালিয়া ক্লাসের অন্তর্ভুক্ত। অর্থাৎ মাম্মালিয়া ক্লাসের অন্য প্রাণীদের সাধারণ বৈশিষ্ট্যগুলি অবশ্যই মানুষের মধ্যে থাকবে। ক্লাসটা নির্ধারণ করে দিচ্ছে তাঁর অন্তর্গত প্রাণীদের কি কি বৈশিষ্ট্য থাকবে। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়েও ব্যাপারটা তাই। আমি একটি ক্লাস তৈরি করে যখন ঐ ক্লাসের অবজেক্ট তৈরি করছি , তখন ক্লাসের ডিফাইনকৃত বৈশিষ্ট্যগুলিই ঐ অবজেক্টে বিদ্যমান থাকবে। মেথডে...