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

WBOY
Lepaskan: 2023-09-05 12:21:10
ke hadapan
1306 orang telah melayarinya

什么是代理设计模式以及如何在 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;
   }
}
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan