美文网首页
一个小demo带你了解静态代理

一个小demo带你了解静态代理

作者: majorty | 来源:发表于2019-05-23 15:11 被阅读0次
    package com.majorty;
    
    /**
     * 静态代理举例
     * 特点:代理类和被代理类在编译期间,就确定下来了
     *
     * @author zhangshuai
     * @date 2019-05-23 14:50
     */
    interface ClothFactory {
    
        void produceCloth();
    }
    
    /**
     * 代理类
     */
    class ProxyClothFactory implements ClothFactory {
    
        private ClothFactory factory;//用被代理类对象进行初始化
    
        public ProxyClothFactory(ClothFactory factory) {
            this.factory = factory;
        }
    
        @Override
        public void produceCloth() {
            System.out.println("代理工厂做一些准备工作");
            factory.produceCloth();
            System.out.println("代理工厂做一些后续收尾工作");
        }
    }
    
    /**
     * 被代理类
     */
    class NikeClothFactory implements ClothFactory {
    
        @Override
        public void produceCloth() {
            System.out.println("Nike工厂生产一批运动鞋");
        }
    }
    
    /**
     * 测试类
     */
    public class StaticProxyTest {
    
        public static void main(String args[]) {
            //创建被代理类的对象
            NikeClothFactory nike = new NikeClothFactory();
            //创建代理类的对象
            ProxyClothFactory proxyClothFactory = new ProxyClothFactory(nike);
            proxyClothFactory.produceCloth();
        }
    }
    
    

    控制台输出:


    图片.png

    相关文章

      网友评论

          本文标题:一个小demo带你了解静态代理

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