1.动态代理(aop编程模型范式)
import java.lang.invoke.InvocationHandler; public class DynamicProxyTest { interface IHello { sayHello(); } static class Hello implements IHello { public void syaHello(){ System.out.println("Hello World"); } } static class DynamicProxy implements InvocationHandler{ Object originalObj; Object bind(Object originalObj){ this.orignalObj = originalObj; return Rroxy.newProxyInstance(orignalObj.getClass().getClassLoader(),originalObj.getClass().getInterfaces(),this); } @Override public void invoke(Object obj,Method method,Object[] objs){ System.out.println("通过代理实现的方法调用"); method.invoke(obj,clazz.objs); } } public static void main(String[] args) { IHello hello = (IHello) DynamicProxy.bind(new Hello()); hello.sayHello(); } }
2.工厂模式