zoukankan      html  css  js  c++  java
  • Java静态代理

    场景:

    以结婚为例:

    小明要结婚了, 小明只需要专注于结婚这个事情, 别的事情比如婚礼现场的布置等等可以交给婚庆公司来做.

    两个类: 小明, 婚庆公司.

    一个接口: 结婚.

    两个类都需要实现结婚这个接口, 只不过专注的事情不一样.

    婚庆公司需要私有化一个小明,就相当于小明在这个婚庆公司下了单.

    package com.smile.test.staticpocxy;
    
    public class StaticProxy {
        public static void main(String[] args) {
            MarryCompany marryCompany = new MarryCompany(new You());
            marryCompany.happyMarry();
        }
    
    }
    // 结婚
    interface Marry{
        void happyMarry();
    }
    // 小明
    class You implements Marry{
    
        @Override
        public void happyMarry() {
            System.out.println("结婚了,真开心");
        }
    }
    // 婚庆公司
    class MarryCompany implements Marry{
        private Marry marry;
    
        public MarryCompany(Marry marr){
            this.marry = marr;
        }
    
        @Override
        public void happyMarry() {
            before();
            this.marry.happyMarry();
            after();
        }
    
        private void after() {
            System.out.println("婚庆公司收钱");
        }
    
        private void before() {
            System.out.println("布置现场");
        }
    }
    
    输出结果:
    布置现场
    结婚了,真开心
    婚庆公司收钱
    
    Process finished with exit code 0
    

    真实对象,代理对象都要实现同一个接口.

    代理对象要代理真实角色.

    代理对象可以做很多真实对象做不了的事.

    真实对象专注做自己的事.

  • 相关阅读:
    docker安装
    linux磁盘空间挂载
    python之MD5加密
    python之pymysql
    python 之Redis笔记
    python 随机生成中文名字
    python之json笔记
    python时间模块笔记
    python 用pip安装pymysql(win7下)
    数据库操作番外篇~
  • 原文地址:https://www.cnblogs.com/lvzl/p/14665675.html
Copyright © 2011-2022 走看看