java设计模式---静态代理

java设计模式---静态代理


我们在生活中经常会遇到朋友圈代购,筹办婚礼的婚介公司,离婚诉讼的律师啊等等,这种就是我们生活中的代理。就是我们想要获得一种东西,但是获取的过程我并不care,我只想要结果,至于获取的过程是多么的困难艰辛我一点都不想听,那么我们就需要找代理,同理,java代理模式也就是这个道理。

java中的代理步骤
1、写一个接口,对应的是我想要的结果的具体抽象
2、写一个接口的实现类,java中称之为委托类,就是我想要的结果的一些详细情况
3、 编写一个代理类,java中称之为代理类proxy

实现代码
1、编写一个接口,比如我要买房子,抽象一下买房有什么需要考虑的

public interface House {

    //房子价格
    public int value();

    //买房的动作
    public boolean buy();
}

2、写一个接口的实现类,比如这栋房子具体多少钱啊

public class HouseImpl implements House{

    @Override
    public int value() {
        //房子价格100万
        return 1000000;
    }

    @Override
    public boolean buy() {
        //我就是那栋你高攀不起的房子
        return false;
    }

}

3、创建一个代理类,也就是买房的中介

public class HouseProxy implements House{

    House target;
    int money;
    public HouseProxy(House target,int money){
        this.target = target;
        this.money = money;
    }

    @Override
    public int value() {
        return target.value();
    }

    @Override
    public boolean buy() {
        //中介的内心想法
        System.out.println(money > target.value()?
                "中介代理的心理------->果然是大老粗,这么贵也买得起":
                "中介代理的心理------->滚,你个穷小子");
        //中介只告诉你在最后的结果,买成还是没买成
        return money > target.value();
    }

}

ok,准备就绪,我们就来运行一下代码

public class TestBuyHouse {
    public static void main(String[] args){

        //我看中这套房子了
        House house = new HouseImpl();
        //中介我要买这台房子,出价101块钱,你帮我买
        HouseProxy proxy = new HouseProxy(house,101);
        //好的,中介出手,房子我有
        boolean result = proxy.buy();
        System.out.println(result?
                "买到房啦,今晚去蹦迪" :
                "没买到,晚上去一条龙治疗下受伤的心灵");
    }
}

我们打印一下结果,看房子买成没有
在这里插入图片描述
果然是买不起,那我去银行贷款下,出价101万呢?

public class TestBuyHouse {
    public static void main(String[] args){

        //我看中这套房子了
        House house = new HouseImpl();
        House proxy = new HouseProxy(house,1010000);
        //中介再次出手
        boolean result = proxy.buy();
        System.out.println(result?
                "买到房啦,今晚去蹦迪" :
                "没买成,晚上去一条龙治疗下手上的心灵");
    }
}

打印下结果,看结果如何
在这里插入图片描述
ok,房子买到了,静态代理我们也学到了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值