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
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.
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; } }
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!