संदर्भ सामग्री:"पीआईएमपीएल" मुहावरे का उपयोग क्यों किया जाना चाहिए?
PIMPL Idiom (कार्यान्वयन के लिए सूचक) कार्यान्वयन छुपा है, जिसमें एक सार्वजनिक वर्ग एक संरचना या वर्ग कि पुस्तकालय सार्वजनिक वर्ग का हिस्सा है बाहर नहीं देखा जा सकता लपेटता के लिए एक तकनीक है।
यह पुस्तकालय के उपयोगकर्ता से आंतरिक कार्यान्वयन विवरण और डेटा छुपाता है।
इस मुहावरे को लागू करते समय आप सार्वजनिक तरीकों को पिंपल वर्ग पर क्यों रखेंगे, न कि सार्वजनिक वर्ग के तरीके से सार्वजनिक वर्ग विधि कार्यान्वयन पुस्तकालय में संकलित किया जाएगा और उपयोगकर्ता के पास केवल हेडर फ़ाइल है?
उदाहरण के लिए, यह कोड Purr()
इम्प्लोर क्लास पर कार्यान्वयन करता है और इसे भी लपेटता है।
पुरानी कक्षा पर सीधे पुर को लागू क्यों नहीं करें?
// header file:
class Cat {
private:
class CatImpl; // Not defined here
CatImpl *cat_; // Handle
public:
Cat(); // Constructor
~Cat(); // Destructor
// Other operations...
Purr();
};
// CPP file:
#include "cat.h"
class Cat::CatImpl {
Purr();
... // The actual implementation can be anything
};
Cat::Cat() {
cat_ = new CatImpl;
}
Cat::~Cat() {
delete cat_;
}
Cat::Purr(){ cat_->Purr(); }
CatImpl::Purr(){
printf("purrrrrr");
}
क्योंकि दलाल मुहावरा से बचा जाना चाहिए .. – mlvljr
बहुत बढ़िया जवाब, और मैं इस लिंक मिल गया के रूप में अच्छी तरह से व्यापक जानकारी होती है: http://marcmutz.wordpress.com/translated-articles/pimp-my-pimpl/ – zhanxw
हैं आप रखरखाव कोडर को एक पक्ष के बाद आना चाहते हैं, याद रखें कि यह एक ** इंटरफ़ेस ** पैटर्न है। हर आंतरिक वर्ग के लिए इसका इस्तेमाल न करें। ब्लेड रनर को उद्धृत करने के लिए, मैंने देखा है *** आप लोग विश्वास नहीं करेंगे। – DevSolar