プロキシモードのJavaのデザインパターン(動的プロキシ)

プロキシモード:プロキシプロキシオブジェクト実際のオブジェクト、実際のオブジェクトの機能を向上させる目的

  静的エージェント:クラスファイルの記述プロキシモードがあります

  ダイナミックエージェント:Agentクラスは、メモリ内に形成されています。

プロキシオブジェクトと実際のオブジェクトは、同じインターフェイスを実装します

プロキシオブジェクト=たとえば、Proxy.newProxyInstance()。

メソッドを呼び出すために、プロキシオブジェクトを使用します

エンハンスメント

強化されたパラメータリスト

戻り値の型を強化

エンハンスメントロジック実行

 

参考:携帯電話販売

実際のオブジェクトを作成します。1.

  

2.ダイナミックエージェントの機能強化機動オブジェクト

三つのパラメータ:

クラスローダ実際のオブジェクト.getClass()。のgetClassLoader()

インターフェイス実オブジェクト.getClass()の配列。GetInterfacesメソッド()

プロセッサ新のInvocationHandler()

SaleComputer proxy_Moblie =(SaleComputer)たとえば、Proxy.newProxyInstance(moblie.getClass()のgetClassLoader()、moblie.getClass()でgetInterfaces()、新規のInvocationHandler(){

プロキシロジックの調製方法:プロキシオブジェクトのすべてのメソッドを呼び出すには、メソッドの実行をトリガします

三つのパラメータ:

プロキシオブジェクトプロキシ
メソッド呼び出しプロキシオブジェクトメソッド、オブジェクトが後にカプセル化されて
通過する、メソッド呼び出しに実際のプロキシオブジェクト引数パラメータ

@Override
パブリックオブジェクトを呼び出し(オブジェクトプロキシ、メソッドのメソッド、オブジェクト[] argsが)のThrowableを{スロー

  補強パラメータ引数[0]

メソッドを呼び出すために実際のオブジェクトを使用します

オブジェクトOBJ = method.invoke(機動、引数)。

2強化され、戻り値

XXX返します。

}

覚えやすいです。

 

おすすめ

転載: www.cnblogs.com/zxh06820/p/12466699.html