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