यूएमएल उपयोग केस आरेखों को दिखाने के लिए दो समान रूप से समकक्ष तरीकों की अनुमति दें कि use case extensions के विपरीत use case generalizations नामक उपयोग के मामले को एक अलग उपयोग के मामले में महसूस किया जा सकता है। मैंने निम्नलिखित मूल रूप से उदाहरण को समान आवृत्ति वाले दृष्टिकोण का उपयोग करके मॉडलिंग किया है, कभी-कभी एक स्रोत के भीतर।केस सामान्यीकरण बनाम विस्तार
मेरे मन के लिए एक विस्तार के आधार मामले के लिए विशेष उपयोग के मामले का एक सीधा प्रतिस्थापन सामान्यीकरण में संभव होना चाहिए के रूप में सामान्यीकरण की तुलना में एक कमजोर संबंध लेकिन जरूरी नहीं कि एक्सटेंशन में है।
ऐसा लगता है कि सामान्यीकरण का अर्थ है कि पॉलिमॉर्फिक कार्यान्वयन वांछित है, जबकि विस्तार से संकेत मिलता है कि कुछ ब्रांचिंग संरचना का उपयोग किया जाना है।
void makePayment(const PaymentDetails* pd)
{
pd->pay();
}
रूप
void makePayment(const PaymentDetails* pd)
{
switch(pd->type)
{
case EFT:
payViaEFT(pd);
break;
case PAYPAL:
payViaPayPal(pd);
break;
case CREDITCARD:
payViaCreditCard(pd);
break;
}
}
करने का विरोध प्रयोग करें प्रकरण चरण अभी तक भी इस तरह के कार्यान्वयन विशिष्ट चिंताओं के लिए जल्दी तैयार किया जा करने के लिए नहीं है? इसके लिए बहुत अधिक उपयुक्त यूएमएल आरेख हैं। क्या दोनों का उपयोग करने के बारे में एक कठिन और तेज़ नियम है और यदि ऐसा है तो क्या है?
दोनों कार्यान्वयन एक ही समस्या का मॉडल करते हैं। वे एक यूसी आरेख या किसी अन्य से जुड़े नहीं हैं। Polymorphic एक और अधिक वांछनीय है, क्योंकि यह आसान, आसान करने के लिए आसान है और मानव त्रुटि के अधीन कम है। –