Was ist das Proxy-Entwurfsmuster und wie implementiert man es in C#?

WBOY
Freigeben: 2023-09-05 12:21:10
nach vorne
1282 Leute haben es durchsucht

什么是代理设计模式以及如何在 C# 中实现它?

Das Proxy-Muster stellt ein Proxy- oder Platzhalterobjekt bereit, um den Zugriff auf ein anderes Objekt zu steuern.

Proxy-Objekte werden auf die gleiche Weise verwendet wie ihre enthaltenden Objekte.

Teilnehmer.

Subject definiert eine öffentliche Schnittstelle für RealSubject und Proxy, sodass Proxy überall dort verwendet werden kann, wo RealSubject es benötigt.

RealSubject definiert das spezifische Objekt, das vom Proxy dargestellt wird.

Der Proxy verwaltet einen Verweis auf das reale Subjekt und steuert den Zugriff darauf. Es muss dieselbe Schnittstelle wie RealSubject implementieren, damit die beiden möglicherweise austauschbar verwendet werden können. Wenn Sie jemals das Verhalten eines vorhandenen Objekts ändern mussten, ohne die Definition dieses Objekts tatsächlich zu ändern, können Sie genau das mit dem Proxy-Muster tun. Darüber hinaus ist dies in Testszenarien nützlich, in denen Sie möglicherweise das Verhalten einer Klasse replizieren müssen, ohne sie vollständig zu implementieren.

Beispiel

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;
   }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist das Proxy-Entwurfsmuster und wie implementiert man es in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!