2011-09-29 4 views
7

क्या कोई मेरे लिए परिभाषित कर सकता है कि एक प्रदाता, सेवा और ब्रोकर के बीच वैचारिक अंतर है?डिजाइन पैटर्न नामकरण और स्पष्टीकरण: प्रदाता, सेवा, ब्रोकर

मैं नियमित रूप से एमवीसी ऐप्स लिखता हूं और अन्य वर्गों में व्यवसाय तर्क का अधिकतर ऑफ़लोड करता हूं। कुछ भी कल्पना नहीं, बस पैरामीटर में पास करें और पीओसीओ उदाहरण वापस प्राप्त करें।

उन कक्षाओं को मेरे नियंत्रक के लिए भारी उठाने के लिए सही लेबल क्या है?

+0

दिलचस्प सवाल है, लेकिन (प्रदाता, सेवा, ब्रोकर) नियमों के नामकरण को दर्शाता है। यह एक डिजाइन पैटर्न नहीं है (जैसा कि आप अपने शीर्षक में प्रवेश करते हैं)! क्या आप मेरी बात से सहमत हैं? –

+0

यह मेरी समझ है कि प्रदाता और ब्रोकर डिजाइन पैटर्न हैं लेकिन मैं गलत हो सकता हूं। हालांकि, हाँ, आप सही हैं, मेरा विशिष्ट प्रश्न उस व्यवहार के नामकरण सम्मेलन के बारे में है जो मैं पेश कर रहा हूं। कक्षा (एसएस) का नाम क्या है जिसके लिए मैं जिम्मेदारी उतार रहा हूं। – Shawn

+0

एक ब्रोकर अन्य ऑब्जेक्ट्स के बीच डेटा या घटनाओं को स्थानांतरित करता है। यह प्रदाता (उदा।) से अधिक सक्रिय भूमिका निभाता है, लेकिन केवल स्थानांतरण के लिए होता है। एक वास्तविक जीवन दलाल की तरह किंडा, यह वास्तव में सेवाएं प्रदान नहीं करता है। –

उत्तर

21

एक प्रदाता वास्तव में 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); 
    } 
} 
+1

यह वही है जो मैं ढूंढ रहा था। उत्कृष्ट स्पष्टीकरण। धन्यवाद। – Shawn

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^