에이전트 모드의 정적 에이전트의 실현

6625 단어 java 모드

프록시 모드의 정의: 이 대상에 대한 접근을 제어하기 위해 다른 대상에게 프록시를 제공합니다.어떤 경우 한 대상이 다른 대상을 직접 인용할 수 없거나 대리 대상은 클라이언트와 목표 대상 사이에서 중개 역할을 할 수 있다.


에이전트 모델은 정적 에이전트, 동적 에이전트로 나뉜다.


정적 에이전트는 프로그래머가 만들거나 도구로 에이전트 클래스를 만드는 원본 코드를 만들고 에이전트 클래스를 컴파일합니다.이른바 정태란 프로그램이 실행되기 전에 이미 에이전트 클래스의 바이트 파일이 존재하고 에이전트 클래스와 의뢰 클래스의 관계는 실행 전에 확정된다.


동적 에이전트는 실현 단계에서 에이전트 클래스에 관심을 두지 않고 실행 단계에서 어떤 대상을 지정합니다.


정적 대리님이 밤을 들어주세요.


두 사람이 있다. 많은 머니의 장삼과 24K 깡패 이사가 있다. 그들은 똑같은 일을 하고 있다. 소송과 밥을 먹게 되자 장삼은 전문 변호사를 고용하여 소송을 하고 밥을 먹는다.이사는 변호사를 고용할 수 없어서 어쩔 수 없이 스스로 밥을 먹어야 한다. 밥도 당연히 스스로 먹어야 한다.


할 일 (인터페이스)

package com.hk.service;
/**
 *  ( )
 * @author  
 *
 */
public interface ISomeService {
    // 
    public String Litigate();
    // 
    public String eat();
}

자기가 하면, 하는 방식은(목표류)

package com.hk.service;
/**
 *   
 * @author  
 *
 */
public class ISomeServiceImp implements ISomeService {

    @Override
    public String Litigate() {
        return " , ";
    }

    @Override
    public String eat() {
        return " ";
    }

}

전문 변호사(대리류)

package com.hk.service;
/**
 *   
 * @author  
 *
 */
public class ServiceProxy implements ISomeService {
    // 
    private ISomeService target;

    public ServiceProxy() {
    }
    // , 
    public ServiceProxy(ISomeService target) {
        this.target = target;
    }

    // 
    @Override
    public String Litigate() {
        return " , ";
    }
    // 
    @Override
    public String eat() {
        return target.eat();
    }

}

연역 과정(테스트 클래스)

package com.hk.test;

import com.hk.service.ISomeService;
import com.hk.service.ISomeServiceImp;
import com.hk.service.ServiceProxy;
public class MyTest {
    public static void main(String[] args) {
        // money 
        ISomeService zhangsan = new ISomeServiceImp();
        // 
        ISomeService lisi = new ISomeServiceImp();

        // , 
        ISomeService sp = new ServiceProxy(zhangsan);
        System.out.println("zhangsan"+sp.Litigate()+"-----"+sp.eat());
        // , 
        System.out.println("lisi"+lisi.Litigate()+"-----"+lisi.eat());
    }
}

끝(결과)

zhangsan , ----- 
lisi , ----- 

좋은 웹페이지 즐겨찾기