यह देखते हुए कि Mixins आम तौर पर कक्षा में नए व्यवहार को पेश करते हैं, यह आम तौर पर दर्शाता है कि एक वर्ग में एक से अधिक व्यवहार होंगे।एकल उत्तरदायित्व और मिक्सिन
यदि किसी वर्ग की एक ज़िम्मेदारी है तो इसे कक्षा के रूप में परिभाषित किया जाता है जिसमें परिवर्तन के लिए केवल एक कारण होता है।
तो, मैं दो अलग अलग दृष्टिकोण
वर्ग केवल बदलाव के लिए एक कारण है से देख सकते हैं। मिश्रित मॉड्यूल में परिवर्तन के लिए केवल एक कारण है। यदि वर्ग बदल जाता है तो कक्षा को रीस्टस्टिंग की आवश्यकता होगी। यदि मॉड्यूल बदल जाता है तो मॉड्यूल को रीस्टस्टिंग की आवश्यकता होती है। इसलिए, एसआरपी बरकरार है।
कक्षा में अब बदलाव के दो कारण हैं। यदि कक्षा बदल दी गई है, तो कक्षा और मॉड्यूल दोनों को रीस्टस्टिंग की आवश्यकता है। यदि मॉड्यूल बदल दिया गया है, तो फिर कक्षा और मॉड्यूल दोनों को रीस्टस्टिंग की आवश्यकता है। हेंग, एसआरपी का उल्लंघन किया जाता है।
mixins के उपयोग Single Responsibility Principle का उल्लंघन करता है, और अंत में एक प्रणाली रेख करने में कठिन में परिणाम?
यदि आपको असंबंधित कक्षाओं के बीच साझा व्यवहार की आवश्यकता है तो यह पूरी तरह से किसी अन्य वर्ग के लिए नौकरी की तरह लगता है। यह उन असंबद्ध वर्गों के बीच विरासत या मिश्रण के बिना इंटरफ़ेस के माध्यम से आवश्यक व्यवहार का ख्याल रख सकता है। यह एसआरपी और डीआरवाई का ख्याल रखता है। – Tek