栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java的代理模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java的代理模式

代理模式,首先要有一个租客,要去找房东,但是找不到房东,所以要找中介,中介再去找房东,中介就是代理角色

中介和房东都要有租房子这个事件

抽象角色:一般会使用接口或者抽象类来解决

真实角色:被代理的角色

代理角色:代理真实角色

客户:访问代理对象的人

分为静态代理和动态代理

静态代理

  好处:1.可以使真实角色(房东)只做自己的方法(租房),不用去管一些公共的方法(签合同)  2.公共类交给代理角色,实现业务分工3.公共业务发生扩展的时候,方便集中管理

缺点:一个真实角色就会产生一个代理角色,代码量太大,开发效率低

我是租房的人,我直接找房东租房,

package com.atguigu.zyk;
//租房的人
public class Client {
    public static void main(String[] args) {
        FangDong fangDong = new FangDong();
        fangDong.rent();
    }
}
package com.atguigu.zyk;

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

是没问题的

但是我要找很多房东,才能找到我想要的房子,很麻烦,我可以直接找一个中介,中介就能帮我找到很多房子,而且中介可以帮我签合同,之类的,很省力。

package com.atguigu.zyk;

public class ZhongJie{
    public static void rent() {
        FangDong fangDong =new FangDong();
        fangDong.rent();
        qianhetong();
    }
    public static void qianhetong(){
        System.out.println("签合同");
    }

}
package com.atguigu.zyk;

public class Client {
    public static void main(String[] args) {
        ZhongJie zhongJie=new ZhongJie();
        ZhongJie.rent();
    }
}
动态代理

动态代理和静态代理角色一样

动态代理的类是动态生成的,不是直接写死的,动态代理分为两大类,

基于接口的动态代理,基于类的动态代理。

基于接口的,就是原生的jdk的动态代理。基于类的动态代理,cglib

也可以通过java字节码实现    javasist

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885372.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号