中介公司的故事(二)-Java动态代理

肖老板计划让公司横跨多个行业,但每个新行业都需要创建新接口和代理类,导致大量重复工作。小育和钟经理讨论了这个问题,提出使用Java动态代理来解决。DynamicAgency.java通过getDynamicAgencyInstance()方法动态生成实现了指定接口的代理类,解决了手动创建代理类的问题。同时,通过反射和invoke()方法,实现了接口内部不同方法间的公共逻辑(如骚扰电话和收费),减少了代码冗余。经理惊叹于人类智力的无限可能,并形象地比喻动态代理为馒头夹土豆丝,通过修改即可实现多样化需求。
摘要由CSDN通过智能技术生成

“感恩的心,感谢有你,让我一生,有勇气做我自己”。每当链表家的员工唱完这行业主题曲后,肖老板开始了他的鸡血show。“我们链表家决定进军其它行业,成为一个横跨房屋租售,广告代理,个人金融,代理记账,室內装修,法律援助,家电维修,足底按摩….一万二千三百四十五个行业的大公司”,肖老板慷慨激昂地讲了很长的时间,直到夕阳斜照在小育和钟经理的脸上。

                “噩梦终于结束了,走,我们先吃饭去吧,都快饿死了。”小育有气无力地说。“没问题,我们去炒个土豆丝,把老板的鸡血,不,是鸡汤,好好消化消化。”肖经理同意道。街头小饭馆,晚上6点半,两人相向而坐。钟经理说:“我们聊聊跨行业的事情,对我们现在系统的影响吧”“正有此意,先看看我们现在的实现吧。”,小育若有所思的回答道。

                Rentable.java

publicinterface Rentable {

      publicvoid rent();

}

 

HouseOwner.java

publicclass HouseOwner implements Rentable {

 

     

      private String name;

     

      public HouseOwner  (String name){

            this.name = name;

      }

      //房屋出租

      publicvoid rent(){

            System.out.println("租得"+name+"的房屋。");

      }

 

}

 

CinemaOwner.java

publicclass CinemaOwner implements Rentable{

     

      private String name;

     

      public CinemaOwner  (String name){

            this.name = name;

      }

      //电影院出租

      publicvoid rent(){

            System.out.println("租得"+name+"的电影院。");

      }

}

 

Agency.java

publicclass Agency implements Rentable{

     

      private Rentable renter;

     

      @Override

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值