इस उदाहरण पर विचार करें:
मेरे पास एक वेबसाइट है। यह उपयोगकर्ताओं को पोस्ट बनाने (कुछ भी हो सकता है) और पोस्ट का वर्णन करने वाले टैग जोड़ने की अनुमति देता है। कोड में, मेरे पास दो कक्षाएं हैं जो पोस्ट और टैग का प्रतिनिधित्व करती हैं। इन कक्षाओं में फोन की सुविधा देता है Post
और Tag
।
Post
पोस्ट बनाने, पोस्ट हटाने, पोस्ट अपडेट करने आदि Tag
का ध्यान रखता है, टैग बनाने, टैग हटाने, टैग अपडेट करने आदि
का ध्यान रखता है।
एक ऑपरेशन है जो गायब है। टैग को पोस्ट से जोड़ना। मैं इस बात से जूझ रहा हूं कि यह ऑपरेशन किसे करना चाहिए। यह किसी भी वर्ग में समान रूप से अच्छी तरह से फिट हो सकता है।
एक तरफ, Post
कक्षा में एक फ़ंक्शन हो सकता है जो Tag
एक पैरामीटर के रूप में लेता है , और फिर इसे टैग की सूची में संग्रहीत करता है। दूसरी ओर, Tag
कक्षा में एक फ़ंक्शन हो सकता है जो Post
एक पैरामीटर के रूप में लेता है और से लिंक करता Tag
है Post
।
उपरोक्त मेरी समस्या का एक उदाहरण मात्र है। मैं वास्तव में कई वर्गों के साथ चल रहा हूं जो सभी समान हैं। यह दोनों में समान रूप से अच्छी तरह से फिट हो सकता है। वास्तव में दोनों वर्गों में कार्यक्षमता को कम करने में, इस समस्या को हल करने में मेरी मदद करने के लिए कौन सी परंपराएं या डिजाइन शैली मौजूद हैं। मुझे लगता है कि वहाँ सिर्फ एक उठा कुछ कमी हो गई है?
शायद इसे दोनों वर्गों में रखना सही उत्तर है?