什么是企业网站源码wordpress怎么集中域名权重
web/
2025/9/25 14:09:50/
文章来源:
什么是企业网站源码,wordpress怎么集中域名权重,wordpress电商模板,整站seo排名费用价格一.核心作用
通过代理#xff0c;控制对对象的访问;可以详细控制访问某个对象的方法#xff0c;在调用这个方法前做前置处理#xff0c;调用这个方法后做后置处理。
二.核心角色
抽象角色#xff1a; 定义代理角色和真实角色的公共对外方法;真实角色#xff1a; 实现抽…一.核心作用
通过代理控制对对象的访问;可以详细控制访问某个对象的方法在调用这个方法前做前置处理调用这个方法后做后置处理。
二.核心角色
抽象角色 定义代理角色和真实角色的公共对外方法;真实角色 实现抽象角色定义真实角色suo’yao实现的业务逻辑供代理角色调用代理角色 实现抽象角色是真实角色的代理通过真实角色的业务逻辑方法来实现抽象方法并可以附加自己的操作。将统一的流程控制放到代理角色中处理。
三.应用场景
安全代理 屏蔽对真实角色的直接访问远程访问 通过代理类处理远程方法调用延迟加载 先加载轻量级的代理对象真实需要再加载真实对象。
四.分类
静态代理 静态定义代理类动态代理 动态生成代理类
五.动态代理类生成方式
JDK自带的动态代理CGLIB实现javaassist字节码操作库实现;ASM(底层使用指令可维护性较差)
六.动态代理相比静态代理的优点
抽象角色中声明的所有方法都被转移到调用处理器一个集中的方法中处理这样我们可以更新灵活和统一的处理众多的方法。
七.JDK自带的动态代理
java.lang.reflect.Proxy 动态生成代理类和对象 java.lang.reflect.InvocationHandler 可以通过invoke方法实现对真实角色的代理访问 每次通过Proxy生成代理类对象时都有指定对应的处理器对象
八.举例代码实现 例 以金南铃演出为例假如客户邀请金南玲演出唱歌要做这些事情面试、签合同、订票、唱歌、收钱。如果金南玲演出少那么这些事情她自己就可以干如果演出多与每个客户合作她自己都有干这么多事很繁琐金南玲她自己主要业务就是唱歌那么唱歌之前和之后的事都可以交给别人来做很自然的就产生了经纪人概念。除了唱歌由金南玲本人来做其它事情都交给经纪人做。这理的经纪人就是我们所说的代理。 1.代码实现 抽象角色类
/*** 抽象角色*/
public interface Star {//面试void confer();//签合同void singContract();//订票void bookTicket();//唱歌void sing();//收尾款void collectMoney();
}真实角色类
/*** 真实角色*/
public class RealStar implements Star {Overridepublic void confer() {System.out.println(面试);}Overridepublic void singContract() {System.out.println(签合同);}Overridepublic void bookTicket() {System.out.println(订票);}Overridepublic void sing() {System.out.println(金南铃本人演唱《逆流成河》);}Overridepublic void collectMoney() {System.out.println(收钱);}
}静态代理——代理角色
/*** 代理角色*/
public class ProxyStar implements Star{private RealStar realstar;public ProxyStar(RealStar realstar) {this.realstarrealstar;}Overridepublic void confer() {System.out.println(面试);}Overridepublic void singContract() {System.out.println(签合同);}Overridepublic void bookTicket() {System.out.println(订票);}Overridepublic void sing() {realstar.sing();}Overridepublic void collectMoney() {System.out.println(收钱);}
}静态代理——客户调用
/*** 静态代理*/
public static void main(String[] args) {RealStar realstarnew RealStar();ProxyStar proxystarnew ProxyStar(realstar);proxystar.confer();proxystar.singContract();proxystar.bookTicket();proxystar.sing();proxystar.collectMoney();
}动态代理——代理角色
/*** 动态代理实现代理模式* 动态代理类 */
public class HandlerStar implements InvocationHandler,Star{private Star star;public HandlerStar(Star star) {this.star star;}Overridepublic Object invoke(Object proxy, Method method, Object[] o) throws Throwable {confer();singContract();bookTicket();Object invoke method.invoke(star, o);collectMoney();return invoke;}Overridepublic void confer() {System.out.println(代理面试);}Overridepublic void singContract() {System.out.println(代理签合同);}Overridepublic void bookTicket() {System.out.println(代理订票);}Overridepublic void sing() {}Overridepublic void collectMoney() {System.out.println(代理收钱);}
}动态代理——客户调用
/*** 动态代理实现代理模式*/
public static void main(String[] args) {Star starnew RealStar();HandlerStar handlernew HandlerStar(star);Star proxy(Star) Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[]{Star.class} , handler);proxy.sing();
}更多设计模式学习 设计模式(1)介绍 设计模式(2)单例模式 设计模式(3)工厂模式 设计模式(4)建造者模式 设计模式(5)原型模式 设计模式(6)桥接模式 设计模式(7)装饰器模式 设计模式(8)组合模式 设计模式(9)外观模式 设计模式(10)享元模式 设计模式(11)适配器模式 设计模式持续更新中…
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81663.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!