zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:企业应用开发的思考和策略_Proxy

    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    
    // 使用该BigImage模拟一个很大图片
    public class BigImage implements Image
    {
        public BigImage()
        {
            try
            {
                // 程序暂停3s模式模拟系统开销
                Thread.sleep(3000);
                System.out.println("图片装载成功...");
            }
            catch (InterruptedException ex)
            {
                ex.printStackTrace();
            }
        }
        // 实现Image里的show()方法
        public void show()
        {
            System.out.println("绘制实际的大图片");
        }
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class BigImageTest
    {
        public static void main(String[] args)
        {
            long start = System.currentTimeMillis();
            // 程序返回一个Image对象,该对象只是BigImage的代理对象
            Image image = new ImageProxy(null);
            System.out.println("系统得到Image对象的时间开销:" +
                 (System.currentTimeMillis() - start));
            // 只有当实际调用image代理的show()方法时,程序才会真正创建被代理对象。
            image.show();
        }
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public interface Image
    {
        void show();
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class ImageProxy implements Image
    {
        // 组合一个image实例,作为被代理的对象
        private Image image;
        // 使用抽象实体来初始化代理对象
        public ImageProxy(Image image)
        {
            this.image = image;
        }
        /**
         * 重写Image接口的show()方法
         * 该方法用于控制对被代理对象的访问,
         * 并根据需要负责创建和删除被代理对象
         */
        public void show()
        {
            // 只有当真正需要调用image的show方法时才创建被代理对象
            if (image == null)
            {
                image = new BigImage();
            }
            image.show();
        }
    }
  • 相关阅读:
    【codeforces 411B】Multi-core Processor
    【codeforces 314C】Sereja and Subsequences
    【hdu 1890】Robotic Sort
    【图灵杯 A】谷神的赌博游戏
    【图灵杯 J】简单的变位词
    【图灵杯 F】一道简单的递推题(矩阵快速幂,乘法模板)
    【图灵杯 E也即POJ 3368】简单的RMQ
    【codeforces 496E】Distributing Parts
    【codeforces 553C】Love Triangles
    Diffie-Hellman Key Exchange – A Non-Mathematician’s Explanation
  • 原文地址:https://www.cnblogs.com/tszr/p/12376447.html
Copyright © 2011-2022 走看看