参考記事:
1. https://www.zhihu.com/question/20794107/answer/658139129(静的および動的エージェントの詳細説明)
2. Cglibについて:https ://zhuanlan.zhihu.com/p/70098824
1. エージェンシーの全体的な目的:ターゲットオブジェクトの機能を拡張すること。自身の機能を変更しません。
2. 共通プロキシモード:静的、動的、Cglibプロキシ。最初の2つは、インターフェイスを実装するターゲットオブジェクトに適しています。後者は、インターフェイスを実装しないターゲットオブジェクトに適しています。
3. インターフェイスを持つターゲットオブジェクトのプロキシのアイデア:コピー+拡張のアイデアに基づいて、プロキシクラスを作成します。元のベースでより適切に拡張するために、プロキシクラスとターゲットクラスは同じインターフェイスを実現できます(コピーと同様に、展開);
4. さまざまな「コピー」メソッドに基づいて、静的エージェントと動的エージェントに分けられます。以下は主に理解と記憶に使用され、特定のコードは記事を参照します。
- 静的は次のとおりです。
- ダイナミクスは次のとおりです。
プロキシクラスの生成をスキップして、プロキシオブジェクトを直接生成します。
プロキシオブジェクトとターゲットオブジェクト-InvocationHandlerオブジェクト間のブリッジについて: