यह एक शुरुआती सवाल है, इसलिए कृपया मेरे साथ भालू।क्या "कार्यान्वयन-केवल" वर्ग के सदस्य होना संभव है?
मुझे एक कक्षा मिली है जो किसी तृतीय-पक्ष लाइब्रेरी का उपयोग करती है (अगर यह मायने रखती है)। मैं लाइब्रेरी विधियों को पूरी तरह से सजाया जाना चाहता हूं, ताकि मैं कभी भी अपनी कक्षा के अंतर्निहित कार्यान्वयन को स्विच कर सकूं। कुछ की तरह:
// MyClass.h
@interface MyClass : NSObject ...
- (int) doSomething;
// MyClass.m
#import "some_library.h"
@implementation MyClass
- (int) doSomething
{
//call library's specific stuff
}
अब तक तो अच्छा, लेकिन अब मैं MyClass में एक उदाहरण चर कुछ पुस्तकालय से परिभाषित प्रकार (एक संरचना "some_library.h" में घोषित) है कि प्रयोग की आवश्यकता होती हूँ। बेशक मैं इंटरफ़ेस खंड में सही पुस्तकालय आयात कर सकते हैं:
//MyClass.h
#import "some_library.h"
@interface MyClass : NSObject {
some_library_t blah;
}
- (int) doSomething;
@end
लेकिन यह वास्तव में क्या मैं से बचने के लिए कोशिश कर रहा हूँ है - MyClass इसके कार्यान्वयन के विवरण के बारे में पता के उपयोगकर्ताओं बनाते हैं।
क्या मैं किसी भी तरह से अपने वर्ग 'इंटरफ़ेस से लाइब्रेरी-विशिष्ट प्रकारों को "छुपा" सकता हूं? मानक अभ्यास क्या है?
मेरे बुरा, तय की। मैं 'संरचना' उपयोग के लिए सी ++ सुविधा के लिए भी उपयोग किया गया है। –