如何为昆明网站添加以优化搜索结果?
摘要:网站添加关键词会不会,昆明建站网址,网站口碑推广,华为云助力企业网站安全保障代理模式 代理模式是一种结构型设计模式,它提供了一种替代访问的方法,即通过代理对象来间接访问目标对象。代
网站添加关键词会不会,昆明建站网址,网站口碑推广,华为云助力企业网站安全保障代理模式
代理模式是一种结构型设计模式#xff0c;它提供了一种替代访问的方法#xff0c;即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下#xff0c;增加额外的功能#xff0c;如权限控制、日志记录等。
静态代理
静态代理是指创建的或特…代理模式
代理模式是一种结构型设计模式它提供了一种替代访问的方法即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下增加额外的功能如权限控制、日志记录等。
静态代理
静态代理是指创建的或特定工具自动生成源代码在程序运行前代理类的.class文件就已经存在了。每个代理类只能为一个接口服务如果需要代理多个接口则需要编写多个代理类这会增加维护成本。
示例房子中介静态代理
// 房屋租赁服务接口
interface HouseLeaseService {void leaseHouse();
}// 真实主题类 - 房东
class Landlord implements HouseLeaseService {public void leaseHouse() {System.out.println(房东: 出租房屋.);}
}// 静态代理类 - 中介
class RealEstateAgent implements HouseLeaseService {private Landlord landlord;public RealEstateAgent(Landlord landlord) {this.landlord landlord;}Overridepublic void leaseHouse() {// 增加额外功能例如广告宣传System.out.println(中介: 发布租房信息.);landlord.leaseHouse();// 增加额外功能例如收取中介费System.out.println(中介: 收取中介费用.);}
}public class StaticProxyDemo {public static void main(String[] args) {Landlord landlord new Landlord();HouseLeaseService agentService new RealEstateAgent(landlord);agentService.leaseHouse();}
}在这个例子中RealEstateAgent作为代理类不仅实现了HouseLeaseService接口还包含了对Landlord对象的操作并在调用前后添加了额外的行为。
–
动态代理
动态代理是在程序运行时动态生成代理类的字节码并加载到JVM中因此不需要提前编写代理类的代码。Java提供了两种主要的动态代理方式JDK动态代理和CGLIB。
JDK动态代理
在JDK动态代理中有两个重要的类Proxy和InvocationHandler类 Proxy Proxy 提供用于创建动态代理类和实例的静态方法它还是由这些方法创建的所有动态代理类的超类。 InvocationHandler类 InvocationHandler 是代理实例的调用处理程序 实现的接口。 每个代理实例都具有一个关联的调用处理程序。对代理实例调用方法时将对方法调用进行编码并将其指派到它的调用处理程序的 invoke 方法。
代码示例
首先我们定义一个实现了InvocationHandler接口的处理器类ProxyInvocationHandler 它负责封装中介的具体业务逻辑。
