C#
 Computer >> コンピューター >  >> プログラミング >> C#

プロキシデザインパターンとは何ですか?C#でそれを実装する方法は?


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

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

参加者

サブジェクトは、RealSubjectとプロキシの共通インターフェースを定義して、RealSubjectが期待される場所ならどこでもプロキシを使用できるようにします。

RealSubjectは、プロキシが表す具体的なオブジェクトを定義します。

プロキシはRealSubjectへの参照を維持し、それへのアクセスを制御します。 2つを交換可能に使用できるように、RealSubjectと同じインターフェイスを実装する必要があります

おそらく。オブジェクトの定義を実際に変更せずに既存のオブジェクトの動作を変更する必要があった場合は、プロキシパターンを使用して変更できます。さらに、これは、クラスを完全に実装せずにクラスの動作を複製する必要がある場合があるテストシナリオで非常に役立ちます。

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

  1. 「ペイント3D」とは何ですか、またどのように使用されますか?

    Windows 10を使用している場合、最近「ペイント3D」と呼ばれる奇妙なアプリがコンピューターに表示されるのを見たことがあるかもしれません。一見すると、Windowsの各バージョンで定番となっているおなじみのWindowsアプリPaintに似ているように聞こえます。しかし、最後の「3D」は何を意味するのでしょうか。これはPaintの改良版ですか、それともまったく別のものですか? ペイント3Dとは Paint 3Dは、MicrosoftがWindows10用に公開した機能の無料バンドルであるCreatorsUpdateを介して提供された可能性があります。この更新には、平均的なユーザーがコン

  2. TwitterとFacebookの投稿を時系列で表示する方法

    Facebookは、家族や友人と連絡を取り合い、人気のあるものとそうでないものを瞬時に見つけるための優れた方法です。 Twitterは、キャラクターの制限にもかかわらず、自分を表現し、気になる人と連絡を取り合うための優れた方法でもあります。 あなたは明らかに、これらのソーシャルネットワークにはあなたの友人が共有したものを表示するタイムラインが含まれていることを知っています。すべてのタイプのコンテンツを含むように時間とともに変化し、ソーシャルネットワークがユーザーに最も興味を持っていると考えるユーザーコンテンツを表示するように変換された特性。 Facebookは、そのアルゴリズムを変更し、各