एक प्रदाता वास्तव में Strategy Pattern
आमतौर पर जब किसी एक प्रदाता वे कुछ सार अनुबंध जो करने के लिए कई कार्यान्वयन मौजूद हो सकता है के बारे में बात कर रहे हैं के उपयोग का उल्लेख के लिए सिर्फ एक और नाम है।
//As an abstract base class
public void SetupRoles(RoleProvider provider){}
//As an interface
public void SetupRoles(IRoleProvider provider){}
//As a delegate
public void SetupRoles(Action<String> addRole){}
एक सेवा आमतौर पर एक स्टेटलेस ऑब्जेक्ट को इंगित करने के लिए होती है जिसमें केवल विधियां होती हैं। एक सेवा के रूप में एक सेवा का उपयोग किया जा सकता है, लेकिन यह जरूरी नहीं है।
//Plain old service... doesn't even need the web
// CRAZY TALK MAN!!!
public static class RoleService
{
public static void SetupRoles(){};
public static String[] GetRoles(){};
}
एक Broker वास्तव में सिर्फ के लिए अच्छी तरह से ... दलाली जिम्मेदार है। यह सेवाओं को अलग-अलग रखने के लिए सेवाओं के बीच बातचीत को व्यवस्थित करने, सेवाओं और वस्तुओं के बीच संदेशों को स्थानांतरित करने के लिए डिज़ाइन किया गया है।
public class Broker
{
public void SendImportantMessage(Message msg)
{
//Do some important processing here
// Maybe some validation
NotifySomeOtherServiceOrClassOrMaybeBobFromAccounting(msg);
}
}
दिलचस्प सवाल है, लेकिन (प्रदाता, सेवा, ब्रोकर) नियमों के नामकरण को दर्शाता है। यह एक डिजाइन पैटर्न नहीं है (जैसा कि आप अपने शीर्षक में प्रवेश करते हैं)! क्या आप मेरी बात से सहमत हैं? –
यह मेरी समझ है कि प्रदाता और ब्रोकर डिजाइन पैटर्न हैं लेकिन मैं गलत हो सकता हूं। हालांकि, हाँ, आप सही हैं, मेरा विशिष्ट प्रश्न उस व्यवहार के नामकरण सम्मेलन के बारे में है जो मैं पेश कर रहा हूं। कक्षा (एसएस) का नाम क्या है जिसके लिए मैं जिम्मेदारी उतार रहा हूं। – Shawn
एक ब्रोकर अन्य ऑब्जेक्ट्स के बीच डेटा या घटनाओं को स्थानांतरित करता है। यह प्रदाता (उदा।) से अधिक सक्रिय भूमिका निभाता है, लेकिन केवल स्थानांतरण के लिए होता है। एक वास्तविक जीवन दलाल की तरह किंडा, यह वास्तव में सेवाएं प्रदान नहीं करता है। –