设计模式之代理模式—静态代理

    科技2022-07-10  102

    1 什么是代理模式

    代理模式(Proxy Pattern):代理模式是 Java 常见的设计模式之一。所谓代理模式是指客 户端并不直接调用实际的对象,而是通过调用代理对象,来间接的调用实际的对象。比如中介。如下图

    2 为什么使用代理模式

    隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类 对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接 口。 开闭原则:代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额 外的功能来扩展委托类的功能,这样做我们只需要修改代理类而不需要再修改委托类,符合 代码设计的开闭原则。

    3 实现代理模式

    静态代理模式由三个部分构成:

    一个公共的接口一个被代理的角色一个代理角色

    4 代码部分

    4.1 创建公共的接口

    public interface Rent { void renting(); // 租房方法 }

    4.2 创建被代理角色

    public class Person implements Rent { // 重写租房方法 @Override public void renting() { System.out.println("某人 有房出租"); } }

    4.3 创建代理角色

    public class StaticProxy implements Rent { private Rent rent; public StaticProxyRent(Rent rent){ this.rent = rent; } @Override public void renting() { System.out.println("向房客出租房屋"); this.rent.renting(); System.out.println("完成售后服务"); } }

    4.4 创建测试类进行测试

    public class StaticProxyTest { public static void main(String[] args) { Rent rent = new Person(); StaticProxy staticProxy = new StaticProxy(rent); staticProxy.renting(); } }

    4.5 运行结果

    5 总结

    我们总结一下,其实代理模式就是,房东,中间商,租房者,这三者的关系。房东有房子要出租,找中间商就行,并且一个中间商可以有多个房东,大大减少了房东的压力,也给用户更多的选择。并且,中间商可以扩展很多服务,比如,物业,娱乐等。但是静态代理有很大的缺点,就是随着被代理对象的增多,我们发现代理对象的压力越来越大,而且里面书写的代码也是比较臃肿的。

    Processed: 0.073, SQL: 8