Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah corak reka bentuk proksi dan bagaimana untuk melaksanakannya dalam C#?

Apakah corak reka bentuk proksi dan bagaimana untuk melaksanakannya dalam C#?

WBOY
WBOYke hadapan
2023-09-05 12:21:101278semak imbas

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

Corak proksi menyediakan objek proksi atau pemegang tempat untuk mengawal akses kepada objek lain.

Objek proksi digunakan dengan cara yang sama seperti objek yang mengandunginya

Peserta

Subject mentakrifkan antara muka awam untuk RealSubject dan Proxy supaya Proxy boleh digunakan di mana-mana sahaja RealSubject memerlukannya.

RealSubject mentakrifkan objek khusus yang diwakili oleh Proksi

Proksi mengekalkan rujukan kepada subjek sebenar dan mengawal akses kepadanya. Ia mesti melaksanakan antara muka yang sama seperti RealSubject supaya kedua-duanya boleh digunakan secara bergantian

mungkin. Jika anda pernah perlu menukar gelagat objek sedia ada tanpa benar-benar mengubah definisi objek itu, corak proksi membolehkan anda berbuat demikian. Selain itu, ini berguna dalam senario ujian di mana anda mungkin perlu meniru gelagat kelas tanpa melaksanakannya sepenuhnya.

Contoh

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

Atas ialah kandungan terperinci Apakah corak reka bentuk proksi dan bagaimana untuk melaksanakannya dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam