Table of Contents
सजावट पैटर्न सॉफ्टवेयर इंजीनियरिंग में एक शक्तिशाली डिजाइन पैटर्न है जो डेवलपर्स को अपने मूल कोड को संशोधित किए बिना मौजूदा ऑब्जेक्ट्स में नई कार्यक्षमता जोड़ने की अनुमति देता है। यह दृष्टिकोण विशेष रूप से उपयोगी होता है जब आपको अपने स्रोत कोड को बदलने के बिना सेवा विधियों में लॉगिंग जोड़ने की आवश्यकता होती है, जिससे साफ और बनाए रखने योग्य कोडबेस सुनिश्चित होता है।
सजावट पैटर्न को समझना
सजावट पैटर्न में एक रैपर वर्ग बनाना शामिल है जो मूल सेवा के समान इंटरफेस को लागू करता है। यह रैपर डेलिगेट्स मूल सेवा को बुलाता है लेकिन अतिरिक्त व्यवहार जोड़ता है - जैसे कि लॉगिंग - पहले या बाद में विधि निष्पादन।
Decorator पैटर्न के साथ लॉगिंग लागू करना
मान लीजिए कि आपके पास एक सेवा इंटरफ़ेस है:
public interface DataService {
void fetchData();
}
आप एक ठोस कार्यान्वयन बना सकते हैं:
public class RealDataService implements DataService {
@Override
public void fetchData() {
// Fetch data from a database or external API
}
}
इसके बाद, एक सजावट वर्ग बनाएं जो लॉगिंग जोड़ता है:
public class LoggingDataServiceDecorator implements DataService {
private final DataService wrappedService;
public LoggingDataServiceDecorator(DataService service) {
this.wrappedService = service;
}
@Override
public void fetchData() {
System.out.println("Fetching data started.");
wrappedService.fetchData();
System.out.println("Fetching data completed.");
}
}
सजावटकर्ता का उपयोग करना
लॉगिंग जोड़ने के लिए, अपने मौजूदा सेवा के साथ सजावटकर्ता को तत्काल करें:
DataService service = new RealDataService();
DataService loggedService = new LoggingDataServiceDecorator(service);
// Now, calling fetchData will include logging
loggedService.fetchData();
सजावट पैटर्न के लाभ
- मूल कोड को संशोधित किए बिना मौजूदा कार्यक्षमता को बढ़ाता है
- कोड का पुन: उपयोग और चिंताओं के अलगाव को बढ़ावा देता है
- गतिशील रूप से व्यवहार की कई परतों को जोड़ने में मदद करता है
लॉगिंग के लिए सजावट पैटर्न का उपयोग करना एक सुरुचिपूर्ण समाधान है जो स्वच्छ कोड को बनाए रखता है और खुले-बंद सिद्धांत का पालन करता है, जिससे आपके अनुप्रयोग को विस्तार और बनाए रखने में आसान बना दिया जाता है।