JAVA와 .NET의 차이점을 볼때, 가장 특이한 점이라고 보이는 Interface.
Dynamic Proxy의 핵심 Interface이고, Proxy.newProxyInstance method를 통해서 기본적인 Dynamic Proxy 객체를 생성해주는 것이 가능하다.
코드는 다음과 같다.
Hello proxyHello = (Hello) Proxy.newProxyInstance(
getClass().getClassLoader(),
new Class[] { Hello.class },
new InvocationHandler(new HelloTarget()));
재미있어보이는 코드이고, 일단 Target의 Interface를 모두 상속받은 Proxy객체를 만들어준다는 것이 엄청나다는 느낌이 든다.
물론. 이 코드를 바로 사용하는 일은 거의 존재하지를 않는다.
Spring에서 제공하는 ProxyFactory를 이용해서, Dynamic Proxy를 구성하는 것이 일반적이기 때문이다.