Introduction
Object Oriented Programming में कई बार ऐसी स्थिति आती है जहाँ हम किसी object को सीधे access करने के बजाय उसके माध्यम से (indirectly) access करना चाहते हैं। यह आवश्यकता विशेष रूप से तब होती है जब हम data access को control करना चाहते हैं या अतिरिक्त processing करना चाहते हैं।
इस उद्देश्य को पूरा करने के लिए Proxy Classes का उपयोग किया जाता है। Proxy class एक intermediary (बीच का) class होती है, जो original object और user के बीच काम करती है और access को नियंत्रित करती है।
Definition
Proxy Class वह class होती है जो किसी अन्य class के object को represent करती है और उसके access को control या manage करती है। यह original object के लिए एक substitute या representative के रूप में कार्य करती है।
Proxy Class का मुख्य उद्देश्य
- Direct access को रोकना
- Controlled access प्रदान करना
- Additional functionality जोड़ना
- Security और validation लागू करना
Proxy Class का Concept
Proxy class original class के object को internally use करती है और user को उसके माध्यम से access प्रदान करती है।
Simple Example
#include <iostream>
using namespace std;
// Original class
class RealData {
public:
void show() {
cout << "Accessing Real Data";
}
};
// Proxy class
class Proxy {
private:
RealData real;
public:
void show() {
cout << "Checking access..." << endl;
real.show();
}
};
int main() {
Proxy p;
p.show();
return 0;
}
Output:
Checking access...
Accessing Real Data
Working को समझना
RealData→ original class हैProxy→ access को control कर रही है- user सीधे
RealDataको access नहीं कर रहा - पहले proxy check करती है, फिर real object को call करती है
Proxy Class के उपयोग
- Access control
- Security implementation
- Lazy loading (advanced concept)
- Logging और monitoring
Proxy Class के प्रकार (संक्षेप में)
- Virtual Proxy
- Protection Proxy
- Remote Proxy
Real Life Example
Bank account को सीधे access नहीं किया जा सकता।
ATM machine (proxy) के माध्यम से ही access मिलता है।
ATM पहले verify करता है (PIN), फिर transaction allow करता है।
निष्कर्ष
Proxy class एक intermediary के रूप में काम करती है जो original object के access को नियंत्रित करती है। यह program में security, control और flexibility प्रदान करती है और complex systems को manage करने में सहायक होती है।