5 SOLID Principles Explained

আজ আমি সলিড সম্পর্কে কথা বলতে চাই, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের প্রথম পাঁচটি নীতি যা আমরা এপিম্বাবের (অন্যান্য অনেকের মতো) ওয়ার্কিং সফ্টওয়্যার তৈরির জন্য প্রয়োজনীয়। যদি আপনি এটি জানেন না, কম্পিউটার প্রোগ্রামিংয়ে, সলিড নীতিগুলি মাইকেল ফেদার দ্বারা ২০০০ এর দশকের গোড়ার দিকে রবার্ট সি এর পাঁচটি তত্ত্বের সাথে প্রবর্তন করেছিলেন। মার্টিন দ্বারা সংজ্ঞায়িত করা হয়েছিল।

যেমন আপনি জানেন, একটি কার্যক্ষম সফ্টওয়্যার পেতে, আমাদের অবশ্যই একটি কম সংযুক্তি, উচ্চ সংহতি এবং শক্তিশালী এনক্যাপসুলেশন থাকতে হবে, যা এমন কিছু যা সলাইড নীতিগুলি আমাদের অর্জন করতে সহায়তা করে। ধারণাটি হ’ল, এই নীতিগুলি একসাথে প্রয়োগ করে, আপনি আরও ভাল মানের কোড লিখতে সক্ষম হবেন যা আরও শক্তিশালী। তৈরি করা সিস্টেম সময়ের সাথে সাথে রক্ষণাবেক্ষণ, পুনরায় ব্যবহার এবং প্রসারিত করা সহজ হয়ে যায়। মূলত, সলিড নীতিগুলি সফ্টওয়্যার বিকাশকারীদের স্কেলাবিলিটি অর্জন করতে এবং আপনার কোডটি প্রতিবার পরিবর্তনের মুখোমুখি হতে হয় তা এড়াতে সহায়তা করে।

1. একচেটিয়া দায়িত্ব নীতি

যেমন আপনি দেখতে পাচ্ছেন, এই তত্ত্বটি বলে যে কোনও বস্তুর / শ্রেণির একটিমাত্র দায়িত্ব থাকা উচিত এবং এটি পুরো শ্রেণীর দ্বারা ব্যাখ্যা করা উচিত। এখানে, যখন আমরা কোনও দায়িত্ব সম্পর্কে কথা বলি, তখন আমরা পরিবর্তনের কারণকে বুঝি। এই তত্ত্বটি ক্লাসে আরও দৃhe় সংহতি এবং নির্ভরতা শ্রেণীর মধ্যে সংযোগ স্থাপনের দিকে উন্নতি করে, আরও ভাল পাঠযোগ্যতা সহ একটি নিম্নতর জটিলতা সহ একটি কোড।

যখন একটি শ্রেণীর বিভিন্ন দায়িত্ব থাকে তখন বুঝতে এবং সম্পাদনা করা আরও কঠিন more সুতরাং যদি আমাদের পরিবর্তনের একাধিক কারণ থাকে তবে কার্যকারিতা দুটি শ্রেণিতে বিভক্ত হবে এবং প্রত্যেকে তার দায়িত্ব পরিচালনা করবে।

আমরা কার্যকারিতা আলাদা করার বিষয়ে যত্নশীল কারণ প্রতিটি দায়িত্বই পরিবর্তনের অ্যাক্সেস। যখন কোনও শ্রেণীর একের অধিক দায়িত্ব থাকে, তখন সেই দায়িত্বগুলি যুগল হয়ে যায় এবং এই জুটিটি একটি ভঙ্গুর কোড বেস তৈরি করতে পারে যা আপনার প্রয়োজনীয়তা প্রকাশের সময় প্রতিফলিত করা কঠিন।

আপনি যদি এসআরপি তত্ত্বটি সম্পর্কে আরও কিছুটা জানতে আগ্রহী হন তবে এখানে একটি পোস্ট পড়লে আপনি উপভোগ করবেন।

2. উন্মুক্ত নীতি

এখানে, ধারণাটি হ’ল কোনও সত্তাকে তার আচরণ প্রসারিত করার অনুমতি দেওয়া হবে তবে এর উত্স কোডটি পরিবর্তন করে কখনও নয়। যে কোনও শ্রেণি (বা আপনি যে কোনও কিছু লিখুন) এমনভাবে লিখতে হবে যাতে এটি ব্যবহার করা যায়। এটি প্রয়োজন হলে বাড়ানো যেতে পারে তবে এটি কখনই সংশোধন করা যায় না। যে কোনও উপায়ে ক্লাসটি ব্যবহার করুন, তবে এর আচরণটি পরিবর্তন করে নতুন কোড যুক্ত করে আসে, কখনও পুরানোটিকে সংশোধন করেন না।

৩. লাইস্কভ রিপ্লেসমেন্ট থিওরি

নামটি থেকেই বোঝা যায়, লিকভের প্রতিস্থাপন তত্ত্বটি বার্বারা লিসকভ দ্বারা সংজ্ঞায়িত করেছিলেন। এখানে ধারণাটি হ’ল বস্তুগুলিকে তাদের উপ-টাইপের উদাহরণ দ্বারা প্রতিস্থাপন করা উচিত, এবং এটি গ্রাহকের দৃষ্টিকোণ থেকে আপনার সিস্টেমের কার্যকারিতা প্রভাবিত না করে। প্রায়শই যখন আমরা কোনও জিনিসের প্রতিনিধিত্ব করতে চাই, আমরা আমাদের শ্রেণিগুলির বৈশিষ্ট্যগুলির উপর ভিত্তি করে মডেল করি এবং পরিবর্তে, আমাদের আসলে আচরণের দিকে আরও ফোকাস করা উচিত।

এই তত্ত্বটি মূলত আমাদের বিমূর্তিটি সঠিক তা নিশ্চিত করে এবং সহজেই পুনরায় ব্যবহারযোগ্য এমন একটি কোড এবং খুব সহজেই বোঝা যায় এমন একটি শ্রেণি শ্রেণিবিন্যাস পেতে আমাদের সহায়তা করে।

অনেকেই বলে থাকেন যে লিসকোভের প্রতিস্থাপন তত্ত্বটি পূর্ববর্তী তত্ত্ব, ওপেন-ক্লোজড তত্ত্বের সাথে খুব দৃ relationship় সম্পর্কযুক্ত। রবার্ট সি মার্টিন এমনকি এও বলেছিলেন যে “এলএসপি লঙ্ঘন ওসিপির সুপ্ত লঙ্ঘন”।

4. ইন্টারফেস বিচ্ছিন্নতা নীতি

এখানে, এটি ইন্টারফেস কীভাবে লিখতে হয় সে সম্পর্কে। তাহলে কি বলা হয়েছে? মূলত, একবার যখন কোনও ইন্টারফেস খুব বড় / ঘন হয়ে যায়, আমাদের এটি আরও নির্দিষ্ট সংখ্যক ছোট ইন্টারফেসে সম্পূর্ণরূপে বিভক্ত করতে হবে। এবং ইন্টারফেসটি ক্লায়েন্ট দ্বারা এটি ব্যবহৃত হবে তার দ্বারা সংজ্ঞায়িত হবে, যার অর্থ ইন্টারফেসের ক্লায়েন্ট কেবল তাদের সাথে সম্পর্কিত পদ্ধতিগুলি জানতে পারবে।

আসলে, আপনি যদি এমন পদ্ধতিগুলি যুক্ত করেন যা সেগুলি না থাকা উচিত, ক্লাসগুলি যে ইন্টারফেসটি প্রয়োগ করে তাদের অবশ্যই সেই পদ্ধতিগুলি প্রয়োগ করতে হবে। এই কারণে; গ্রাহকরা তাদের ব্যবহার না করে এমন ইন্টারফেসের উপর নির্ভর করতে বাধ্য করা উচিত নয়। আইএসপিটির উদ্দেশ্য হ’ল একটি সিস্টেমকে ছড়িয়ে দেওয়া এবং এভাবে প্রতিফলক, পরিবর্তন এবং স্থাপনাকে আরও সহজ করে তোলা।

Leave a Comment