看【狂神】静态代理后的思路分享

看【狂神】静态代理后的思路分享

静态代理基础概念
1、代理模式
以生活中的例子举例,分别是租客、房东、中介,在生活中一些找不到租客的房东会将房源信息给到中介公司,租客就可以通过中介获得房源信息。
大概的关系图
2、角色分析
抽象角色: 一般使用接口或者抽象类来解决
真实角色(房东):被代理的角色
代理角色(中介):代理真实角色,代理真实角色后,我们一般会做一些附加操作
客户(租客):访问代理对象的人
3、代码部分
1.代码结构部分
抽象角色Rent
真实角色Host
代理角色Proxy
客户Cloent
在这里插入图片描述
抽象角色Rent

package com.hxl.demo;
//租房
public interface Rent {
    public void rent();
}

真实角色Host

package com.hxl.demo;
//房东
public class Host implements Rent{


    @Override
    public void rent() {
        System.out.println("房东要出租的房子");
    }
}

代理角色Proxy

package com.hxl.demo;
//代理
public class Proxy implements Rent{

    private Host host;

    public Proxy() {
    }

    public Proxy(Host host) {
        this.host = host;
    }

    public void rent() {
        seesHouse();
        host.rent();
        hetong();
        fare();
    }
    //看房
    public void seesHouse(){
        System.out.println("看房");
    }
    //收中介费
    public void fare(){
        System.out.println("收中介费");
    }
    //签合同
    public void hetong(){
        System.out.println("签合同");
    }
}

seesHouse();、hetong();、fare();这三个方式就是代理角色的附加操作

package com.hxl.demo;
//客户
public class Client {
    public static void main(String[] args) {
//       房东租房子,
        Host host = new Host();
//        host.rent();
//        代理,中介帮房东租房子,但是会有附属操作
        Proxy proxy = new Proxy(host);
//        你不用面对房东,直接找中介租房即可
        proxy.rent();

    }
}

创建看好房子的对象,并将对象给到中介,中介就将信息返回给租客

静态代理的优点:
1、可以使真实对象的操作更加纯粹,不用去关注一些公共业务
2、可以将公共业务给到代理角色,实现了业务分工
3、公共业务需要扩展时,方便集中管理

静态代理的缺点:
1、每增加一个真实角色就会产生一个代理角色,代码量增多

以上为狂神的spring中所用的列子,加上一些自己的理解,本人才疏学浅,如果有不对的地方,望各位给予意见,谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值