美文网首页
java 设计模式--代理模式心得1(静态代理)

java 设计模式--代理模式心得1(静态代理)

作者: 心随风飛 | 来源:发表于2019-07-30 12:05 被阅读0次

    代理模式心得

    1 简述

      代理模式,通俗的来讲代理模式就是我们生活中常见的中介,为一个对象在不改变原有需求的情况下增强其功能

    2 示例

    2.1 需求说明

      比如我们需要找房子,先生成租房核心操作接口类

    /**
        * 抽象租房的核心操作接口类
        */
    interface RentalHouse {
        /**
        * 提供租房需求
        */
      public void rentalHouse();
    }
    

    实现该接口

    class RentalHouseImpl implements RentalHouse {
      public void rentalHouse(){
       System.out.println("我租房"); 
      }
    }
    

    主程序

    /**
        * 主程序
        */
    public class TestRun {
      public static void main(String args[]){
        RentalHouse rh = new RentalHouseImpl();
        rh.rentalHouse();
      }
    }
    
    ********执行结果*******
    我租房
    

    2.2 问题发现

      如果按照这个方式的话, 也仅仅是你个人在找房子而已,能力不强

    3 改造

      比如我们需要找房子,我们自己找能力有限, 也就催生出一类公司, 房屋中介,他代为找房, 公司能力更强更广, 能更好更快的为你找合适的房子,你们共同的核心需求就是找房,同时中介在找房的基础上提供了更多功能,也就是代理主题实现

    /**
        * 租房中介
        */
    class RentalHouseProxy implements RentalHouse {
    
        private RentalHouse rentalHouse;
    
        public RentalHouseProxy(final RentalHouse rentalHouse) {
            this.rentalHouse = rentalHouse;
        }
            
        private void ready(){
                System.out.println("租房前准备,查找公司数据库资源");
        }
        
        @Override
        public void rentalHouse() {
            ready();
            rentalHouse.rentalHouse();
            complete();
        }
        
        private void complete(){
          System.out.println("租房后卫生打扫,家具修理");
        }
    }
    

    主程序

    /**
        * 主程序
        */
    public class TestRun {
      public static void main(String args[]){
            // 提供真实需求
        RentalHouse rh = new RentalHouseImpl();
        // 通过中介找房,将需求告诉中介
        RentalHouseProxy proxy = new RentalHouseProxy(rh);
        //中介帮你租房
        proxy.rentalHouse();
      }
    }
    
    ********执行结果*******
    租房前准备,查找公司数据库资源
    我租房
    租房后卫生打扫,家具修理
    

    4 结果总结

      看以上的代码就能得出, 中介不仅能提供找房子功能, 还能做到提前在自己的数据库中查找, 提高找房速度效率, 并且在租房后提供卫生的打扫工作, 家具修理, 功能更强, 比你自己找房还要轻松, 服务更好.

    相关文章

      网友评论

          本文标题:java 设计模式--代理模式心得1(静态代理)

          本文链接:https://www.haomeiwen.com/subject/lqwgrctx.html