5.为了根据目标对象生成一个代理对象,还应该创建一个代理工厂.
//MyProxyFactory.java
package cn.edu.hld;
import java.lang.reflect.Proxy;
public class MyProxyFactory
{
public static Object getProxy(Object target)
{
ProxyHandler handler = new ProxyHandler() ;
handler.setTarget(target) ;
return Proxy.newProxyInstance(PersonImpl.class.getClassLoader()
,target.getClass().getInterfaces(),handler) ;
}
}
6.主程序的实现.
//TestPerson.java
package cn.edu.hld;
public class TestPerson
{
public static void main(String args[])
{
Person targetPerson = new PersonImpl() ;
Person person = null ;
Object proxy = MyProxyFactory.getProxy(targetPerson) ;
if(proxy instanceof Person)
{
person = (Person)proxy ;
}
person.info() ;
person.run() ;
}
}
7.直接在MyEclipse中运行.得到结果如下:
method_1被执行了!
我是thtwin
method_2被执行了!
我想跑得快一些!
责任编辑:小草