大話javaのエージェントモード


1.エージェントモードの紹介エージェントモードはjavaでよく見られるモードであり、springのaopなどの重要なモードでもあり、エージェントモードの応用である.では、エージェントモデルにはどのような役割がありますか?エージェント・モードは、オブジェクトへのアクセスを制御および管理することです.オブジェクトに簡単に直接アクセスしたり呼び出したりする方法に対して,エージェントモードを用いてオブジェクトの使用時に前処理や事後処理などを行うことができる.例えば、権限制御、ログ記録などです.もちろん、オブジェクト内で直接操作することができますが、結合性が高く、コードのメンテナンスに不利です.
2.エージェントモード1つのエージェントモードを実現するdemoをどのように使用するか、主に3つのクラスが必要である.
1)委託類インタフェース
//     
public interface TestService {

    void business();
    
}

2)委託類の実現
//       
public class TestImplement implements TestService{

    @Override
    public void business() {
        System.out.println("do the busniess");
    }
    
}

3)エージェントクラス
//       ,    implements    
public class StaticProxy implements TestService{

    private TestService testService;

    public StaticProxy(TestService testService) {
        this.testService = testService;
    }
    
    @Override
    public void business() {
        //        ,      、     
        System.out.println("before invoke,I can do something.");
        
        testService.business();
        
        //         ,         ,     
        System.out.println("before invoke,I can do something.");
    }
}

テスト方法:
TestService service = new TestImplement();
StaticProxy proxy = new StaticProxy(service);
proxy.business();

テスト出力結果:before invoke,I can do something.do the busniessbefore invoke,I can do something.
以上がエージェントの簡単な実装であり,静的エージェントとも呼ばれる.このような実装では,各委任クラスにエージェントクラスを書く必要があり,大量のエージェントクラスが生成され,コードの多重化やプロジェクトのデカップリングにも不利であるため,動的エージェントを用いてこれらの問題を解決する.ダイナミックエージェントの詳細については次編で大きな話を続けます.
これは私の代理モードに対するいくつかの理解で、とてもみんなの指導と討論を歓迎します.