इंटरफेस का उपयोग तब किया जाना चाहिए जब आप अपने सॉफ़्टवेयर के दो अलग-अलग वर्गों के बीच बातचीत को स्पष्ट रूप से परिभाषित करना चाहते हैं। खासकर जब यह संभव है कि आप कनेक्शन के किसी भी छोर को बाहर निकालना चाहते हैं और इसे किसी और चीज़ से बदलना चाहते हैं।
उदाहरण के लिए मेरे सीएएम आवेदन में मेरे पास एक कटिंगपैथ पॉइंट्स के संग्रह से जुड़ा हुआ है। आईपॉइंटलिस्ट इंटरफेस रखने का कोई मतलब नहीं है क्योंकि कटिंगपैथ हमेशा मेरे आवेदन में अंक शामिल होंगे।
हालांकि मैं मशीन के साथ संवाद करने के लिए इंटरफ़ेस IMotionController का उपयोग करता हूं क्योंकि हम अपने स्वयं के प्रशंसा सेट और संचार की विधि के साथ कई अलग-अलग प्रकार की काटने की मशीन का समर्थन करते हैं। तो उस स्थिति में इसे एक इंटरफेस के पीछे रखना समझ में आता है क्योंकि एक इंस्टॉलेशन किसी अन्य मशीन की तुलना में एक अलग मशीन का उपयोग कर सकता है।
हमारे आवेदन 80 के दशक के मध्य से बनाए रखा गया है और 90 के उत्तरार्ध में ऑब्जेक्ट उन्मुख डिजाइन में गया है। मैंने पाया है कि जो कुछ मैंने मूल रूप से सोचा था उससे अधिक परिवर्तन हो सकता था और इंटरफेस का उपयोग बढ़ गया है। उदाहरण के लिए यह होता था कि हमारे ड्रॉइंगपैथ में अंक शामिल थे। लेकिन अब इसमें इकाइयों (splines, arcs, ec) शामिल हैं, इसलिए यह एक EntityList की ओर इशारा किया गया है जो ऑब्जेक्टिटी इंटेलिजेंस को कार्यान्वित करने का ऑब्जेक्ट का संग्रह है।
लेकिन यह परिवर्तन इस प्राप्ति से प्रेरित हुआ कि कई अलग-अलग तरीकों से ड्रॉइंगपैथ खींचा जा सकता है। एक बार जब यह महसूस किया गया कि विभिन्न प्रकार के ड्राइंग विधियों की आवश्यकता थी तो एक एंटीटी ऑब्जेक्ट के लिए एक निश्चित रिश्ते के विपरीत इंटरफ़ेस की आवश्यकता का संकेत दिया गया था।
ध्यान दें कि हमारे सिस्टम में ड्रॉइंगपैथ को निम्न स्तर के काटने वाले पथ पर प्रस्तुत किया जाता है जो हमेशा बिंदु खंडों की श्रृंखला होती है।
स्रोत
2008-12-09 13:31:00
सही से, आपको चाहिए। बाईं ओर, आपके पास एक जनरेटर होना चाहिए जो आपके लिए "बॉयलरप्लेट" करता है। – Pacerier