मैंने आम तौर पर एबीसी की तुलना में शुद्ध इंटरफेस के साथ दूर, बहुत अधिक रखरखाव समस्याओं का सामना किया है, यहां तक कि एबीसी कई विरासत के साथ उपयोग किया जाता है। YMMV - डननो, शायद हमारी टीम ने उन्हें अपर्याप्त रूप से इस्तेमाल किया।
उस ने कहा, अगर हम एक वास्तविक दुनिया सादृश्य का उपयोग करते हैं, तो शुद्ध इंटरफेस के लिए कार्यक्षमता और राज्य से पूरी तरह से कितना उपयोग है? यदि मैं एक उदाहरण के रूप में USB का उपयोग करता हूं, तो यह एक यथोचित स्थिर इंटरफ़ेस है (मुझे लगता है कि हम अभी USB 3.2 पर हैं, लेकिन इसने पीछे की संगतता भी बनाए रखी है)।
फिर भी यह एक स्टेटलेस इंटरफ़ेस नहीं है। यह कार्यक्षमता से रहित नहीं है। यह शुद्ध इंटरफ़ेस की तुलना में अमूर्त आधार वर्ग की तरह है। यह वास्तव में बहुत विशिष्ट कार्यात्मक और राज्य की आवश्यकताओं के साथ एक ठोस वर्ग के करीब है, एकमात्र अमूर्त के रूप में पोर्ट में प्लग एकमात्र प्रतिस्थापन योग्य हिस्सा है।
अन्यथा यह आपके कंप्यूटर में एक मानकीकृत फॉर्म फैक्टर और बहुत ढीले कार्यात्मक आवश्यकताओं के साथ "छेद" होगा जो तब तक कुछ भी नहीं करेगा जब तक कि प्रत्येक निर्माता अपने स्वयं के हार्डवेयर के साथ उस छेद को बनाने के लिए कुछ न करें, जिस बिंदु पर यह एक बहुत ही कमजोर मानक बन जाता है और "होल" और इसे क्या करना चाहिए, इसके विनिर्देश से ज्यादा कुछ नहीं है, लेकिन इसे कैसे करना है, इसके लिए कोई केंद्रीय प्रावधान नहीं है। इस बीच हम 200 अलग-अलग तरीकों से इसे समाप्त कर सकते हैं क्योंकि सभी हार्डवेयर निर्माता कार्यक्षमता को संलग्न करने के लिए अपने तरीके के साथ आने की कोशिश करते हैं और उस "छेद" के लिए राज्य करते हैं।
और उस बिंदु पर हमारे पास कुछ निर्माता हो सकते हैं जो दूसरों के ऊपर विभिन्न समस्याओं का परिचय देते हैं। यदि हमें विनिर्देश को अद्यतन करने की आवश्यकता है तो हमारे पास विनिर्देशन से निपटने और परीक्षण करने के लिए पूरी तरह से भिन्न तरीकों के साथ 200 अलग-अलग ठोस यूएसबी पोर्ट कार्यान्वयन हो सकते हैं। कुछ निर्माता डी-फैक्टो मानक कार्यान्वयन विकसित कर सकते हैं, जो वे आपस में साझा करते हैं (आपका एनालॉग बेस क्लास उस इंटरफ़ेस को लागू करता है), लेकिन सभी नहीं। कुछ संस्करण दूसरों की तुलना में धीमे हो सकते हैं। कुछ बेहतर थ्रूपुट लेकिन बदतर विलंबता या इसके विपरीत हो सकते हैं। कुछ दूसरों की तुलना में अधिक बैटरी शक्ति का उपयोग कर सकते हैं। कुछ लोग बाहर निकल सकते हैं और सभी हार्डवेयर के साथ काम नहीं कर सकते हैं जो यूएसबी पोर्ट के साथ काम करने वाले हैं। कुछ को संचालित करने के लिए एक परमाणु रिएक्टर की आवश्यकता हो सकती है जो अपने उपयोगकर्ताओं को विकिरण विषाक्तता देने की प्रवृत्ति रखता है।
और जो मैंने पाया है, व्यक्तिगत रूप से, शुद्ध इंटरफेस के साथ। ऐसे कुछ मामले हो सकते हैं जहां वे समझ में आते हैं, जैसे कि सीपीयू के मामले में मदरबोर्ड के फॉर्म फैक्टर को मॉडल करना। फॉर्म फैक्टर एनालॉग्स, वास्तव में, बहुत अधिक स्टेटलेस और कार्यक्षमता से रहित हैं, जैसा कि एनालॉग "होल" के साथ है। लेकिन मैं अक्सर टीमों के लिए यह एक बड़ी गलती मानता हूं कि यह विचार करना कि सभी मामलों में किसी भी तरह से बेहतर होना, करीब भी नहीं।
इसके विपरीत, मुझे लगता है कि एबीसी द्वारा इंटरफेस के मुकाबले कहीं अधिक मामले बेहतर हल किए जाएंगे यदि वे दो विकल्प हैं जब तक कि आपकी टीम इतनी विशाल नहीं है कि यह वास्तव में एक केंद्रीय मानक के बजाय 200 प्रतिस्पर्धात्मक यूएसबी कार्यान्वयन के बराबर अनुरूप होना वांछनीय है। बनाए रखें। मैं जिस पूर्व टीम में था, मुझे वास्तव में एबीसी और मल्टीपल इनहेरिटेंस की अनुमति देने के लिए कोडिंग मानक को ढीला करने के लिए वास्तव में कठिन संघर्ष करना पड़ा, और मुख्य रूप से ऊपर वर्णित इन रखरखाव समस्याओं के जवाब में।