【03】 代理的意义
Java 代理说的白话一点就是,找个代替人帮你过滤东西,其实就是找个中间人,隔绝不合理请求
此时 需要记住几个东西 。1.接口,接口实例,实例代理
package xvy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class _proxy { public static void main(String []arg) { StarProxy s = new StarProxy(); person p = s.getproxy(); p.sing("雅俗共赏"); } } interface person{ String sing(String name); String dance(String name); } class Star implements person{ public String sing(String name){ System.out.println( "Stars sing "+name ); return " Sing Over "; } public String dance(String name) { System.out.println( "Stars dance "+name ); return " Dance Over "; } } class StarProxy { private Star aStar = new Star(); public person getproxy(){ return (person) Proxy.newProxyInstance( StarProxy.class.getClassLoader(), aStar.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if(method.getName().equals("sing")) { method.invoke(aStar,args); } else if(method.getName().equals("dance")) { method.invoke(aStar,args); } return null; } } ); } }
此时 需要注意的是 我们先找到对应的代理人,然后告诉他,我要和你代理的那个人说话,通过代理人反射任务。
不摸着石头过河,难道要在温柔乡睡到天昏地暗。