Maison > développement back-end > Tutoriel C#.Net > Qu'est-ce que le modèle de conception de proxy et comment l'implémenter en C# ?

Qu'est-ce que le modèle de conception de proxy et comment l'implémenter en C# ?

WBOY
Libérer: 2023-09-05 12:21:10
avant
1311 Les gens l'ont consulté

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

Le modèle de proxy fournit un objet proxy ou espace réservé pour contrôler l'accès à un objet différent.

Les objets Proxy sont utilisés de la même manière que les objets qu'ils contiennent

Participants

Subject définit une interface publique pour RealSubject et Proxy afin que Proxy puisse être utilisé partout où RealSubject en a besoin.

RealSubject définit l'objet spécifique représenté par le proxy

Le proxy maintient une référence au sujet réel et en contrôle l'accès. Il doit implémenter la même interface que RealSubject afin que les deux puissent être utilisés de manière interchangeable

éventuellement. Si vous avez déjà eu besoin de modifier le comportement d'un objet existant sans réellement modifier la définition de cet objet, le modèle de proxy vous permet de le faire. De plus, cela est utile dans les scénarios de test dans lesquels vous devrez peut-être reproduire le comportement d'une classe sans l'implémenter complètement.

Exemple

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;
   }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal