मेरे पास दो वर्ग हैं, Operation
और Trigger
। प्रत्येक में कई उपवर्ग होते हैं जो कुछ प्रकार के संचालन या ट्रिगर में विशेषज्ञ होते हैं। A Trigger
विशिष्ट को ट्रिगर कर सकता है Operation
। जबकि Operation
एक विशिष्ट द्वारा ट्रिगर किया जा सकता है Trigger
।
मुझे उस कोड को लिखने की ज़रूरत है जो किसी दिए Operation
गए Trigger
(या इसके विपरीत) मैप करता है , लेकिन मुझे यकीन नहीं है कि इसे कहां रखा जाए।
इस मामले में कोड स्पष्ट रूप से एक वर्ग या अन्य वर्ग से संबंधित नहीं है। इसलिए एकल-जिम्मेदारी सिद्धांत के संदर्भ में मुझे यकीन नहीं है कि कोड कहां होना चाहिए।
मैं तीन विकल्प देख सकता हूं जो सभी काम करेंगे। जबकि 1 और 2 केवल शब्दार्थ का विकल्प प्रतीत होते हैं, 3 पूरी तरह से एक अलग दृष्टिकोण का प्रतिनिधित्व करता है।
- ट्रिगर पर, उदा
bool Triggers(Operation o)
। - ऑपरेशन पर, उदाहरण के लिए
bool TriggeredBy(Trigger t)
। - एक पूरी तरह से नए वर्ग में, जो मानचित्रण का प्रबंधन करता है, जैसे
bool MappingExists(Trigger t, Operation o)
।
मुझे यह कैसे तय करना चाहिए कि एकल जिम्मेदारी सिद्धांत के संबंध में साझा मैपिंग कोड को कहां रखा जाए?
जब जिम्मेदारी साझा की जाती है तो एकल जिम्मेदारी कैसे प्रबंधित करें?
संपादित करें 1।
तो वास्तविक कोड इस तरह दिखता है। सभी गुण हैं, या तो एक string
, Guid
, collection<string>
, या enum
। वे मूल रूप से केवल डेटा के छोटे टुकड़ों का प्रतिनिधित्व करते हैं।
संपादित करें २।
मल के वापसी प्रकार का कारण। एक अन्य वर्ग एक संग्रह Trigger
और के संग्रह का उपभोग करने जा रहा है Operation
। यह जानना आवश्यक है कि मैपिंग ए Trigger
और ए के बीच कहां मौजूद है Operation
। यह उस जानकारी का उपयोग रिपोर्ट बनाने के लिए करेगा।