2010-04-22 20 views
9

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

हालांकि एक छोटी सी समस्या है: हमारे पास एक पर्ल कोड बेस है और रिफैक्टरिंग मोस भूमिकाओं का व्यापक रूप से उपयोग करती है। अब मैं यूएमएल को भूमिकाओं के लिए उचित अबाधता खोजने के लिए पर्याप्त नहीं जानता - मेरा पहला अनुमान इंटरफेस होगा, लेकिन इसमें कार्यान्वयन भी शामिल है; एकाधिक विरासत इसे काफी कटौती नहीं करता है।

मैं कक्षा आरेख में भूमिकाओं का प्रतिनिधित्व कैसे करूं (या आप कैसे)?

उत्तर

3

तरह प्रतिनिधित्व कर रहे थे मैं «role» स्टीरियोटाइप के साथ एक यूएमएल वर्ग के रूप में एक भूमिका का प्रतिनिधित्व करते हैं। भूमिका को लिखने वाली कक्षा में स्टीरियोटाइप «does» के साथ भूमिका का एक सहयोग होगा।

Simple Composition http://img820.imageshack.us/img820/5665/simplecomposition.png

अगर मैं आगे भूमिका अनुकूल करने के लिए, उपनाम या बहिष्करण के साथ की जरूरत है, मुझे लगता है कि बनाएंगे, ठीक से एनोटेट सदस्यों के साथ और «adaptation» स्टीरियोटाइप के साथ जुड़ाव वर्ग के रूप में। एसोसिएशन क्लास का नाम कोई फर्क नहीं पड़ता, क्योंकि यह डिजाइन में वास्तविक प्रकार नहीं होगा; इसलिए मैं इसे अनामित छोड़ दूंगा।

Composition with Conflict Resolution http://img828.imageshack.us/img828/244/conflictcomposition.png

(कृपया ध्यान दें कि मैं अनुकूलन "वर्ग" की संरचना और भूमिका यह adapts। क्या मैं सच में MyComposition और MyRole1 के बीच सहयोग से कनेक्ट था करना चाहता था से जुड़ा दिखाई है। यह सिर्फ है कि मैंने जो टूल इस्तेमाल किया वह एसोसिएशन कक्षाओं का समर्थन नहीं करता था)।

+0

Jordão, मुझे उन आरेखों को देखना पसंद है। आप उन्हें बनाने के लिए किस टूल का उपयोग करते थे? –

+0

@WayneConrad: मैंने [yUML] (http://yuml.me/) का उपयोग किया, इसे जांचें! –

+0

यह यूएमएल के लिए ग्राफविज़ की तरह है। बहुत अच्छा! –

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

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