2010-03-09 2 views
5

हम एक सीएडी कार्यक्रम के लिए एक एसडीके लिख रहे हैं और एक विशिष्ट प्रकार के कार्य के संबंध में मामूली असहमति में भाग लेते हैं (न केवल अलग-अलग लोगों के बीच असहमति, मेरे दो मस्तिष्क-हिस्सों के बीच असहमति)।नेट एसडीके समस्या, किस तरह से जाना है?

कल्पना करें कि विशिष्ट वक्र प्रकारों (अंडाकार, सर्कल, आर्क, रेखा, बेजियर इत्यादि) के लिए बहुत सी कक्षाएं हैं। इन सभी वर्गों को नूरब्स वक्र द्वारा दर्शाया जा सकता है। इसलिए हम सर्किल पर Circle-> Nurbs समारोह रखना चाहिए:

public NurbsCurve Circle.ToNurbsCurve() 
{ 
    // Return a circular NurbsCurve or null if the Circle is invalid. 
} 

या यह NurbsCurve पर एक स्थिर होना चाहिए:

public static NurbsCurve NurbsCurve.CreateFromCircle(Circle) 
{ 
    // Return a circular NurbsCurve or null if the Circle is invalid. 
} 
+0

एक विकल्प विस्तार विधियां होगी। 'सार्वजनिक स्थैतिक नूर्ब्स कुर्व टूनर्ब्स (यह सर्किल सर्कल) {} ' –

+2

@ क्रिस, जो वास्तव में यहां समझ में नहीं आता है ... यह सर्किल है जो जानता है कि इसे नूरब्स कर्ववे में नूर्ब्स कर्व के रूप में कनवर्टर कैसे किया जाना चाहिए। विस्तार विधियां एक अच्छी सुविधा हैं, लेकिन कई लोग (मेरे साथ) उन्हें अधिक उपयोग करते हैं –

उत्तर

4

मुझे लगता है कि मैं पहली बार (जैसे आकार वर्गों पर के लिए जाना चाहते हैं , यहां तक ​​कि एक सामान्य बेस क्लास या IConvertibleToNurbsCurve जैसे इंटरफेस के साथ भी), क्योंकि इससे आप अन्य आकार जोड़ते हैं जो बाद में NurbsCurve में कनवर्ट करने योग्य होते हैं।

NurbsCurve कम विशिष्ट प्रतीत होता है और इसलिए अधिक विशेष प्रकार के IMHO के बारे में "पता" नहीं होना चाहिए।

+0

धन्यवाद लुसेरो। बाद में और कक्षाओं को जोड़ने के बारे में अच्छी बात है। –

1

मैं Circle वर्ग में रख सकता है, क्योंकि यह एक है कि जानता है कि इसे NurbsCurve में कैसे परिवर्तित किया जाना चाहिए। NurbsCurve कक्षा को सभी विशिष्ट प्रकार के वक्र के बारे में नहीं पता होना चाहिए। इस तरह, यदि आप एक नया प्रकार का वक्र बनाते हैं, तो आपको NurbsCurve कक्षा को संशोधित करने की आवश्यकता नहीं होगी।

Btw, मैं सुझाव है कि आप सभी घटता द्वारा कार्यान्वित एक अंतरफलक में ToNurbsCurve प्रणाली की घोषणा (या आभासी की घोषणा एक सार आधार वर्ग में)

+0

धन्यवाद थॉमस। इंटरफ़ेस टिप्पणी के संबंध में, दुर्भाग्यवश हमारे पास कई अलग-अलग ToXxxx() फ़ंक्शंस हैं इसलिए उन सभी के लिए इंटरफेस का उपयोग करना कुछ हद तक कमजोर हो जाएगा। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^