ठोस सिद्धांतों का खुलासा - (I)

Apr 17 2023
इंटरफ़ेस पृथक्करण सिद्धांत
इंटरफेस को कक्षाओं को उस कार्यक्षमता को लागू करने के लिए मजबूर नहीं करना चाहिए जो वे समर्थन नहीं करते हैं, जिसका अर्थ है कि बड़े इंटरफेस को समर्थन देने के लिए छोटे में विभाजित किया जाना चाहिए। नमूना परिदृश्य चलिए इसी परिदृश्य का उपयोग AreaCalculator वर्ग के साथ करते हैं और इसमें नई कार्यक्षमता जोड़ते हैं।

इंटरफेस को कक्षाओं को उस कार्यक्षमता को लागू करने के लिए मजबूर नहीं करना चाहिए जो वे समर्थन नहीं करते हैं, जिसका अर्थ है कि बड़े इंटरफेस को समर्थन देने के लिए छोटे में विभाजित किया जाना चाहिए।

नमूना परिदृश्य

एरियाकलक्यूलेटर वर्ग के साथ समान परिदृश्य का उपयोग करते हैं और इसमें नई कार्यक्षमता जोड़ते हैं। इस बार उपयोगकर्ता घन, घनाभ और आदि जैसी आकृतियों के आयतन का योग चाहेगा।

खराब तरीके से लिखा

आपके द्वारा बनाई गई किसी भी आकृति को वॉल्यूम विधि को लागू करना चाहिए , लेकिन आप जानते हैं कि वर्ग सपाट आकार हैं और उनके पास वॉल्यूम नहीं हैं, इसलिए यह इंटरफ़ेस स्क्वायर वर्ग को एक ऐसी विधि को लागू करने के लिए बाध्य करेगा जिसका कोई उपयोग नहीं है।

यह इंटरफ़ेस पृथक्करण सिद्धांत का उल्लंघन करता है।

अच्छा लिखा

इस उल्लंघन का समाधान करने के लिए, हमें एक नया इंटरफ़ेस बनाना होगा जिसे IShape3D कहा जाता है ताकि आकृतियों को नियंत्रित किया जा सके जिसमें वॉल्यूम हो और 2D आकृतियों को संभालने के लिए IShape इंटरफ़ेस को इसी तरह रखें।

प्रमुख लाभ

  1. उच्च सामंजस्य - बेहतर समझ, मजबूती।
  2. कम युग्मन - बेहतर रख-रखाव, परिवर्तनों के लिए उच्च प्रतिरोध।
  3. कक्षाओं को उन इंटरफेस को लागू करने के लिए मजबूर नहीं किया जाता है जिनका वे उपयोग नहीं करते हैं।