5000元网站seo推广,网页被禁止浏览怎么解决,学网页制作的网站,wordpress的设置网址导航无侵入式的给代码增加额外的功能
代理的作用#xff1a;对象如果干的事情太繁琐#xff0c;就可以通过代理来转移部分职责#xff1b;也就是相当于把对象的的方法拆开一些步骤分给代理做#xff0c;对象做关键的就行了#xff1b;并且代理做的这些繁琐的事情的名字也要和…无侵入式的给代码增加额外的功能
代理的作用对象如果干的事情太繁琐就可以通过代理来转移部分职责也就是相当于把对象的的方法拆开一些步骤分给代理做对象做关键的就行了并且代理做的这些繁琐的事情的名字也要和对象做这件事情的名字一样
对象和代理要实现同一个接口接口中就是被代理的所有方法
对象
package com.ln1;import com.FC.Star;public class Goods implements Star {private String name;private String id;private int age;private String rightPassWord 123456;public Goods() {}public Goods(String name, String id, int age, String rightPassWord) {this.name name;this.id id;this.age age;this.rightPassWord rightPassWord;}public Goods(String name){this.name name;}public String sing(String Name){System.out.println(this.name sing Name);return thanks;}public void dance(){System.out.println(this.name dance);}}代理
package com.FC;import com.ln1.Goods;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;public class ProxyUtil {public static Star createProxy(Goods goods){Star star (Star) Proxy.newProxyInstance(ProxyUtil.class.getClassLoader(), //用于指定用哪个类加载器去加载生成的代理类new Class[]{Star.class},//指定接口这些接口用于指定生成的代理长什么样也就是有哪些方法new InvocationHandler() {Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//参数1代理的对象//参数2要运行的方法//参数3调用方法时传递的实参if(sing.equals(method.getName())){System.out.println(收钱准备话筒);}else if(dance.equals(method.getName())){System.out.println(收钱准备场地);}return method.invoke(goods,args);}}//用来指定生成的代理对象要干什么事情);return star;}
}接口
package com.FC;public interface Star {public abstract String sing(String Name);public abstract void dance();
}运行代码
package com.FC;import com.ln1.Goods;public class Text {public static void main(String[] args) {Goods goods new Goods(yoki);Star proxy ProxyUtil.createProxy(goods);String result proxy.sing(入睡);System.out.println(result);proxy.dance();}
}