java 에이전트 jdk 동적 에이전트 응용 프로그램 열
1887 단어 jdk 동적 에이전트
public interface Singer {
public abstract void sing();
public abstract String s();
}
2, 구체적인 가수
public class MySinger implements Singer {
public void sing() {
// TODO Auto-generated method stub
System.err.println(" 。。。。");
}
}
3, 에이전트 클래스 (매니저)
public class agent implements InvocationHandler{
public Object target;
//
public Object bind(Object target){
this.target=target;
// Proxy
return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
}
//
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object o =null;
System.out.println(" ");
System.out.println(" ");
o = method.invoke(target, args);//
System.out.println(" ");
return o;
}
}
4. 테스트 (왜 인터페이스가 가능한지, 다음에 에이전트가 돌아오는 것은 그들의 인터페이스 클래스입니다. 이것은 하나의 에이전트 클래스를 원하면 여러 클래스를 대리할 수 있습니다. 이 클래스가 같은 인터페이스라면 실현됩니다)
public class Test {
public static void main(String[] args) {
//
agent a =new agent();
Singer s= (Singer) a.bind(new MySinger());
s.sing();
}
}