ホームページ > バックエンド開発 > C#.Net チュートリアル > プロキシ設計パターンとは何ですか?また、それを C# で実装する方法は何ですか?

プロキシ設計パターンとは何ですか?また、それを C# で実装する方法は何ですか?

WBOY
リリース: 2023-09-05 12:21:10
転載
1339 人が閲覧しました

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

プロキシ パターンは、別のオブジェクトへのアクセスを制御するためのプロキシまたはプレースホルダ オブジェクトを提供します。

Proxy オブジェクトは、そのオブジェクトを含むオブジェクトと同じ方法で使用されます。

Participants

Subject は、RealSubject と Proxy のパブリック インターフェイスを定義し、RealSubject が必要とするどこでも Proxy を使用できるようにします。使用。

RealSubject は、Proxy によって表される特定のオブジェクトを定義します。

プロキシは、実際のサブジェクトへの参照を維持し、そのサブジェクトへのアクセスを制御します。 RealSubject と同じインターフェイスを実装して、おそらく 2 つを交互に使用できるようにする必要があります。実際にオブジェクトの定義を変更せずに、既存のオブジェクトの動作を変更する必要がある場合、プロキシ パターンを使用するとそれが可能になります。さらに、これは、クラスを完全に実装せずにクラスの動作を複製する必要があるテスト シナリオでも役立ちます。

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;
   }
}
ログイン後にコピー

以上がプロキシ設計パターンとは何ですか?また、それを C# で実装する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート