इस तरह मापदंडों का एक बड़ा सेट अक्सर है (लेकिन हमेशा नहीं) एक संकेत है कि आप एक वस्तु का उपयोग कर किया जा सकता है पैरामीटर सेट प्रतिनिधित्व करते हैं।
कहा जाता है तो अपने ऊपर कोड बन सकता है (मेरी सी क्षमा ++, मैं एक जावा डेवलपर हूँ):
class BuildVehicleBooking {
Long officeId;
Long start;
Long end;
String origin;
String destination;
String purpose;
String requirements;
Integer numberOfPassengers;
Booking createVehicleBooking() throws ServiceException { ... }
}
यह बिल्डर पैटर्न है । इस पैटर्न का लाभ यह है कि आप अंत में create
विधि को कॉल करने से पहले, पैरामीटर एक-दूसरे से संबंधित पैरामीटर के बारे में कई भिन्नताओं सहित, और नई जानकारी के रूप में ओवरराइटिंग पैरामीटर के रूप में कई भिन्नताओं सहित पैरामीटर में पैरामीटर का एक जटिल सेट बना सकते हैं। ।
एक और संभावित लाभ यह है कि आप verifyParameters
विधि जोड़ सकते हैं जिसने creating
अंतिम वस्तु तक जाने से पहले अपनी स्थिरता की जांच की है। यह उन मामलों में लागू होता है जहां ऑब्जेक्ट बनाने में गैर-परिवर्तनीय कदम शामिल होते हैं, जैसे किसी फ़ाइल या डेटाबेस को लिखना।
ध्यान दें कि, सभी पैटर्न के साथ, यह हर मामले में लागू नहीं होता है और आपके आवेदन में लागू नहीं हो सकता है। यदि आपका कोड काफी सरल है तो यह पैटर्न अधिक इंजीनियरिंग हो सकता है। अगर कोड गन्दा हो रहा है, तो इस पैटर्न में रीफैक्टरिंग इसे सरल बनाने का एक अच्छा तरीका हो सकता है।
स्रोत
2008-10-10 01:35:09
दुर्भाग्य से मुझे नहीं लगता कि मैं इससे दूर हो सकता हूं क्योंकि यह एक वेब सेवा के लिए एक एसओएपी एंडपॉइंट है, लेकिन फिर भी बहुत जानकारीपूर्ण है। – abarax
आप वेब सेवाओं के लिए भी इस तकनीक को पूरी तरह से नियोजित कर सकते हैं। आपको अपनी कक्षा को क्रमबद्ध करने की आवश्यकता है, और वेब सेवाओं को होस्ट करने के लिए आप जो भी उपयोग कर रहे हैं उसके आधार पर स्कीमा को संभावित रूप से तैनात करने की आवश्यकता है (उदाहरण के लिए, उदाहरण के लिए मुझे विश्वास होगा, जबकि एएसपीनेट इसे आपके लिए संभाल लेगा) – Jeremy
बिल्डर पैटर्न उपयोगी है, अच्छी सलाह! कुल विश्व वर्चस्व (थ्रेड सुरक्षा) के लिए, सुनिश्चित करें कि निर्माण विधि उन्हें सत्यापित करने से पहले सभी मानकों की प्रतिलिपि बनाती है। (इसके अलावा, मामूली टिप्स: पूर्णांक के बजाय लोन, int के बजाय लंबे समय तक उपयोग करें और गेटर/सेटर विधियों को प्रदान करें।) – volley