मुझे लगता है कि मैं एक सी # वर्ग या दो को छोड़ दिया, लेकिन यहाँ मेरी दुविधा है:सी # सार वर्ग स्थिर क्षेत्र विरासत
मैं एक अमूर्त वर्ग है जहाँ से मैं कई बच्चे कक्षाओं प्राप्त की है।
मुझे यकीन है कि प्रत्येक बच्चे कक्षाओं के लिए मेरे पास एक निर्माता होगा जिसके लिए एक मॉडल के रूप में एक निश्चित स्थैतिक वस्तु की आवश्यकता होती है और यह वस्तु प्रत्येक बच्चे वर्ग के लिए अलग होगी।
मेरा पहला दृष्टिकोण अमूर्त माता-पिता वर्ग में सार्वजनिक स्थैतिक वस्तु बनाना था और फिर, मैंने बच्चों के वर्गों के किसी भी उदाहरण को शुरू करने से पहले, मैं इसे प्रत्येक के लिए संशोधित कर दूंगा, लेकिन यह पता चला है कि इस तरह मैं वास्तव में अमूर्त वर्ग के लिए केवल एक स्थिर वस्तु बनाते हैं, और इसके प्रत्येक बच्चे वर्ग इसका उपयोग करता है।
मैं समस्या को कैसे हल कर सकता हूं?
अधिक सटीक होना करने के लिए, यहाँ स्यूडोकोड है:
माता पिता सार वर्ग:
abstract class AbstractClass
{
static public ModelObject Model;
...
}
बच्चे कक्षाओं में से एक:
class Child : AbstractClass
{
...
public Child()
{
this.someField = Model.someField;
}
}
संपादित करें:
मॉडल को "मॉडलऑब्जेक्ट" वर्ग का सदस्य होना चाहिए, यह सिंगलटन या कोई नहीं होना चाहिए एनजी और
EDIT2:
और भी अधिक सटीक होना करने के लिए, मैं शतरंज का खेल के लिए इस कार्यान्वयन चुना है: प्यादे, शूरवीर: मैं शतरंज के मोहरे और बच्चे कक्षाओं खेल की ठोस टुकड़े प्रतिनिधित्व के लिए एक अमूर्त वर्ग है , और cetera।
अमूर्त वर्ग मेशमैट ऑब्जेक्ट से प्राप्त होता है, एक वर्ग जो जेनेरिक 3 डी ऑब्जेक्ट्स को मूल कार्यक्षमता, जैसे घूर्णन, मेष, सामग्री, बनावट आदि के साथ प्रस्तुत करता है और यह शतरंज के खेल के टुकड़ों जैसे गेटपॉइसमोव्स() के लिए अमूर्त तरीकों को परिभाषित करता है।
मॉडल ऑब्जेक्ट जो मैं ऊपर के बारे में बात कर रहा था वह मेशमैट ऑब्जेक्ट का सदस्य है और मेरी राय में, कक्षा के बाहर केवल एक बार परिभाषित किया जाना चाहिए और फिर सभी टुकड़ों के लिए उपयोग किया जाना चाहिए। मेरा मतलब है: उदाहरण के लिए सभी पंजाों में एक ही जाल और बनावट होती है, इसलिए जब भी आप एक पंख बनाना चाहते हैं तो मुझे पैरामीटर के रूप में मॉडल देने का बिंदु नहीं दिखता है।
किस तरह से सार क्लास को मॉडल तक पहुंचने की आवश्यकता है? – dtb
आपको ऐसे स्थिर क्षेत्र का उपयोग करने के बजाय अपने उप-वर्गों के रचनाकारों को मॉडल उदाहरण पारित करने पर विचार करना चाहिए। – Trillian
मैं ट्रिलियन से सहमत हूं। स्थिर मॉडल वास्तव में यहां encapsulation की भावना का उल्लंघन कर रहा है। –