プロキシモード:プロキシプロキシオブジェクト実際のオブジェクト、実際のオブジェクトの機能を向上させる目的
静的エージェント:クラスファイルの記述プロキシモードがあります
ダイナミックエージェント: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返します。
}
覚えやすいです。。。。