Java | Proxy Pattern


Proxy Pattern


Note:
  • コンピュータプログラミングにおけるソフトウェアの設計モードの1つ.
  • クラス
  • 、通常エージェントは異なるインタフェースとして機能する
  • プロキシモードの例は、カウントスマートポインタオブジェクトを参照することである.
  • エージェント・モードの大きな特徴は、フローのみを制御し、結果値を操作または変更できないことです.
  • モード
  • は、実際に必要とされるオブジェクトをエージェントオブジェクトとしてカプセル化することによって使用され、他のオブジェクトへのアクセスや仮想作成オブジェクトを制御し、実際のリクエストが発生した場合にのみ高コストの処理を行う.
    次のグラフを見ると分かりやすい
    グラフのフローチャートで説明する場合は、このインタフェースのメソッドを定義します.
    次に、ProxyクラスでRealクラスをグローバル変数として作成します.
    Proxy ClassはReal Classを呼び出します.
    public interface Item {
        void getByItem();
    }
    日記帳を見るとItem画面が作られます
    使用するgetByItemメソッドを作成します.
    次にitemインタフェースをproxy-item、real-itemクラスに継承します.
    public class ProxyItem implements Item {
    
        private Item item;
    
        @Override
        public void getByItem() {
    
            if (null == item) {
                item = new RealItem();
            }
    
            item.getByItem();
        }
    
    }
    
    public class RealItem implements Item {
    
        @Override
        public void getByItem() {
            System.out.println(">>>>>>>>>>>>>>>>>>> real proxy value");
        }
    
    }
    その後、継承後にgetByItemを上書きします.
    (親定義を再定義する方法)
    ここでproxyクラスは、本当に呼び出すクラスをグローバル変数として使用します.
    またproxyクラスから呼び出されるのはリアルクラスから呼び出される
    クラスにクラスを入れることでフローを制御する方式と考えられる.
    public class Main {
    
        public static void main(String[] args) {
            Item item = new ProxyItem();
            item.getByItem();
        }
    
    }
    mainクラスで呼び出す場合はproxyをitemに注入するだけです.