1.代理店モデルは、プロキシオブジェクトを生成するための本来の目的である元のオブジェクトの使用を制御することにより、プロキシオブジェクトが、元のオブジェクトを使用するプロセスにいくつかの余分なことを行うことができます。仲介や、不動産業者として私たちに似生命、代理店を発券、というように。プロキシパターンの利点は、直接、元のオブジェクトを呼び出すのではなく、または保護的役割とデカップリングの役割、他の最も重要なことは、追加の操作を行うことができますプロキシオブジェクトを呼び出す処理であるを果たしている可能性があり、プロキシオブジェクトを、コールします。最も一般的な例は、AOPの春であるプロキシを介して達成すべきである、と彼は実行時のプロキシオブジェクトに動的に生成され、運転前、術後、その通知を増やすことができます。プロキシモードは、動的および静的プロキシエージェントに分割され、エージェントを動的動作中に動的に生成されたプロキシオブジェクトを生成し、静的プロキシは符号化する際、開発者によって手動で作成されたプロキシオブジェクトであるか、またはプログラムを実行する前に、特定のツールを使用してプロキシオブジェクトを作成しますプロキシオブジェクトがすでに存在しています。
2.帯電防止剤。ここでチケットを購入するために、静的なエージェントを実装チケットを購入する例が自分で購入することができ、また、Ctripのを買うために私たちを助けることができる、Ctripのは、そのためのプロキシオブジェクトであり、私たちは私たちがこのアクションを実行するのに役立つために彼の購入によって彼に番号とパスワードを占めるが、中私たちは、後に料金を支払うために必要な購入する、あなたが購入する前に約束をする必要があります。
パッケージcom.java.dp.proxy。 / ** * @Author lizhilong * @Create 2019年12月3日夜01時40分 * @desc * / パブリック インターフェイスBuyTicket { ボイドbuyTickt(); }
パッケージcom.java.dp.proxy; / ** * @author lizhilong * @Create 2019年12月3日13:42 * @desc元のオブジェクト * / パブリック クラス UserByTicket 実装BuyTicket { @Override 公共 ボイドbuyTickt(){ システム。 out.printlnを( "チケットを購入" ); } }
パッケージcom.java.dp.proxy。 / ** * @Author lizhilong * @Create 2019年12月3日夜1時43分 * @desc代理对象 * / パブリック クラス XiechengProxy 実装BuyTicket { プライベートBuyTicket buyTicket。 公共XiechengProxy(BuyTicket buyTicket){ この .buyTicket = buyTicket。 } @Override 公共 ボイドbuyTickt(){ beforeBuy()。 buyTicket.buyTickt(); afterBuy(); } プライベート ボイド beforeBuy(){ System.out.printlnは(「購入の列車の切符が任命Ctripのアプリを作るために必要になる前に」); } プライベート 無効 afterBuy(){ System.out.printlnは(「有料成功報酬に購入」); } }
パッケージcom.java.dp.proxy。 / ** * @Author lizhilong * @Create 2019年12月3日午後一時46分 * @desc * / パブリック クラスProxyMain { 公共 静的 ボイドメイン(文字列[]引数){ BuyTicket buyTicket = 新しい XiechengProxy(新しいUserByTicket())。 buyTicket.buyTickt(); } }
前Ctripのアプリはチケットを購入する予定を必要とする
通常の購入チケットが
支払われる成功報酬を買います