设计模式--------代理模式

设计模式--------代理模式

介绍代理模式的三大问题

  • 什么是代理模式?
  • 代理模式有什么好处?
  • 常见的代理模式,以及应用场景

什么是代理模式?

  • 代理模式:为另一个对象提供一个代表对象,以便控制客户对对象的访问(有多种管理方式)
  • 常见的使用场景
    • 远程代理:管理客户和远程对象的交互
    • 虚拟代理:控制访问实例化开销大的对象
    • 保护代理:管理调用者对对象方法的访问
    • 缓存代理,同步代理,防火墙代理等
  • 代理模式和装饰模式的不同之处:
    • 装饰模式是为对象增加新的行为
    • 代理模式是为了控制访问
  • java内置的代理可以实现动态代理

采用一个例子说明代理模式

  • 代购买衣服,国内此品牌的衣服价格太贵,顾客联系代购商订购衣服,并支付代购费用

Clothes

public interface Clothes {
    
    public void getPrice();

    public void buy();
    
}

Gucci


public class Gucci implements Clothes {

    @Override
    public void getPrice() {
        System.out.println("Price is 10000");

    }

    @Override
    public void buy() {
        System.out.println("buy it");

    }
    
}

GucciProxy

public class GucciProxy implements Clothes {

    Clothes clothes;

    public GucciProxy(Clothes clothes) {
        this.clothes = clothes;
    }

    @Override
    public void getPrice() {
        clothes.getPrice();

    }

    @Override
    public void buy() {
        clothes.buy();

    }
    
}

Main

public class Main {
    public static void main(String[] args) throws Exception {

        Clothes clothes = new Gucci();

        Clothes proxy = new GucciProxy(clothes);

        proxy.getPrice();
        proxy.buy();

    }
}
/// out
Price is 10000
buy it

代理模式的好处?

  • 降低调用者和被调用者的耦合性
  • 根据不同的需求使用不同的代理模式有不同的优点

END

不慕招式,勤修内功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值