यह डिजाइन पैटर्न में कहा गया है - पुन: प्रयोज्य वस्तु उन्मुख सॉफ्टवेयर के तत्वों पुस्तक:पुल पैटर्न - जावा में संकलन का लाभ?
स्थितियों में वहाँ जहां केवल एक कार्यान्वयन (एक-से-एक), बनाने में कोई सार implementor वर्ग नहीं है जरूरी है। यह पुल पैटर्न के का एक अपमानजनक मामला है; एब्स्ट्रक्शन और कार्यान्वयनकर्ता के बीच एक-से-एक संबंध है। फिर भी, यह पृथक्करण अभी भी उपयोगी है जब किसी वर्ग के कार्यान्वयन में परिवर्तन को अपने मौजूदा क्लाइंट को प्रभावित नहीं करना चाहिए- यह पुन: संकलित नहीं होना चाहिए , बस relinked।
मुझे संकलन समय के लाभ के बारे में संदेह है क्योंकि मैं जावा में एक केस की कल्पना नहीं कर सकता जहां कार्यान्वयन में बदलाव इसके सुपरक्लास (इस मामले में सार) को पुन: संकलित करता है।
उदाहरण के लिए, अगर हम एक्स फैली Y और एक ग्राहक की क्या ज़रूरत है:
Y y = new X();
एक्स में बदलाव Y एक रखता मतलब यह नहीं है (बेशक हम नहीं विधि हस्ताक्षर बदलना चाहते हैं
YAbstraction yabstraction = new YRefinedAbstraction(new XImplementor());
XImplementor में बदलाव YAbstraction एक रखता मतलब यह नहीं है: एक्स का)
यह बिल्कुल वही बात जब पुल पैटर्न का उपयोग कर रहा है।
तो, मेरे अनुसार, यह लाभ जावा में नहीं होता है और एक-से-एक => कोई ब्रिज पैटर्न की आवश्यकता नहीं होती है।
शायद अन्य भाषाओं में एक उप-वर्ग बल सुपरक्लास को बदलने के लिए? स्मॉलटाक और सी ++ की तरह?
आपकी राय क्या हैं?
ओपी का मुद्दा उस मामले के लिए विशिष्ट था जहां कार्यान्वयन वर्ग का केवल एक ही कार्यान्वयन था। –
इस अच्छी तरह से विकसित स्पष्टीकरण के लिए धन्यवाद :) तो मैं समेटता हूं: विंडोआईएमपी में एक बदलाव केवल विंडो में बदलाव को प्रेरित करता है और क्लाइंट को पुनः संयोजित करने की आवश्यकता नहीं होती है => क्योंकि विंडो वर्ग के तरीकों का केवल शरीर बदल दिया गया था (नए को अनुकूलित करने के लिए WindowImp) और विंडो क्लास के तरीकों के हस्ताक्षर नहीं, क्या मैं सही हूँ? – Mik378
@ मिक 378 हां, यह सही है। –