Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

प्रॉक्सी डिज़ाइन पैटर्न क्या है और इसे C# में कैसे लागू किया जाए?

प्रॉक्सी पैटर्न किसी अन्य, भिन्न ऑब्जेक्ट तक पहुंच को नियंत्रित करने के लिए एक सरोगेट या प्लेसहोल्डर ऑब्जेक्ट प्रदान करता है।

प्रॉक्सी ऑब्जेक्ट का उपयोग उसी तरह से किया जा सकता है जैसे कि उसकी युक्त वस्तु

प्रतिभागी

विषय RealSubject और प्रॉक्सी के लिए एक सामान्य इंटरफ़ेस को परिभाषित करता है जैसे कि RealSubject की अपेक्षा के अनुसार प्रॉक्सी का उपयोग कहीं भी किया जा सकता है।

RealSubject उस ठोस वस्तु को परिभाषित करता है जिसका प्रॉक्सी प्रतिनिधित्व करता है।

प्रॉक्सी RealSubject का संदर्भ रखता है और उस तक पहुंच को नियंत्रित करता है। इसे उसी इंटरफ़ेस को RealSubject के रूप में लागू करना चाहिए ताकि दोनों का परस्पर उपयोग किया जा सके

शायद। यदि आपको कभी भी उस वस्तु की परिभाषा को बदले बिना किसी मौजूदा वस्तु के व्यवहार को बदलने की आवश्यकता पड़ी है, तो प्रॉक्सी पैटर्न आपको ऐसा करने की अनुमति दे सकता है। इसके अलावा, यह परीक्षण परिदृश्यों में बहुत उपयोगी है, जहां आपको कक्षा के व्यवहार को पूरी तरह कार्यान्वित किए बिना दोहराने की आवश्यकता हो सकती है।

उदाहरण

internal class Program {
   private static void Main(string[] args) {

      NewServerProxy proxy = new NewServerProxy();
      Console.WriteLine("What would you like to order? ");
      string order = Console.ReadLine();
      proxy.TakeOrder(order);

      Console.WriteLine("Sure thing! Here's your " + proxy.DeliverOrder() + ".");
      Console.WriteLine("How would you like to pay?");
      string payment = Console.ReadLine();
      proxy.Processpayment(payment);

      Console.ReadKey();
   }
}

public interface IServerP {
   void TakeOrder(string order);
   string DeliverOrder();
   void Processpayment(string payment);
}
public class ServerP : IServerP {
   private string Order;
   public string DeliverOrder() {
      return Order;
   }

   public void Processpayment(string payment){
      Console.WriteLine("Server Processes the payment " + payment);
   }
   public void TakeOrder(string order) {
      Console.WriteLine("Server takes order " + order);
      Order = order;
   }
}
public class NewServerProxy : IServerP {
   private string Order;
   ServerP _server = new ServerP();
   public string DeliverOrder() {
      return Order;
   }
   public void Processpayment(string payment) {
      _server.Processpayment(payment);
   }
   public void TakeOrder(string order) {
      Console.WriteLine("Server takes order " + order);
      Order = order;
   }
}

  1. “पेंट 3डी” क्या है और इसका उपयोग कैसे किया जाता है?

    यदि आप विंडोज 10 का उपयोग करते हैं, तो आपने अपने कंप्यूटर पर हाल ही में पेंट 3 डी नामक एक अजीब ऐप दिखाई दिया होगा। एक नज़र में, यह हमेशा परिचित विंडोज ऐप पेंट के समान लगता है जो विंडोज के प्रत्येक संस्करण में एक प्रधान रहा है। लेकिन अंत में 3D का क्या अर्थ है? क्या यह पेंट का सिर्फ एक नया संस्करण है

  1. जावा 9 में जेएसएचएल में स्ट्रिंग उपयोगिता और अपरिवर्तनीयता को कैसे कार्यान्वित करें?

    जेशेल एक इंटरैक्टिव कमांड-लाइन . है अभिव्यक्ति, वर्ग, विधियों, क्षेत्रों, इंटरफेस, और आदि जैसे सरल कथनों को लागू करने के लिए प्रयुक्त उपकरण। स्ट्रिंग क्लास बिल्ट-इन का हिस्सा है java.lang पैकेज और सामान्य टेक्स्ट प्रोसेसिंग के लिए कई तरीके प्रदान करता है। 1) स्ट्रिंग उपयोगिता :स्ट्रिंग कई अंतर्न

  1. कालानुक्रमिक क्रम में ट्विटर और फेसबुक पोस्ट कैसे देखें

    फ़ेसबुक परिवार और दोस्तों के संपर्क में रहने और यह पता लगाने का एक शानदार तरीका है कि क्या लोकप्रिय है और क्या नहीं। ट्विटर खुद को व्यक्त करने और चरित्र प्रतिबंधों के बावजूद उन लोगों के संपर्क में रहने का एक शानदार तरीका है, जिनकी आप परवाह करते हैं। आप स्पष्ट रूप से जानते हैं कि इन सामाजिक नेटवर्क