zoukankan      html  css  js  c++  java
  • Alamps学习设计模式之Proxy模式(一骑红尘妃子笑版)

     一、 Proxy模式定义:
    为其他对象提供一种代理以控制这个对象的访问。
    二、 模式解说
    Proxy
    代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层,这个访问层也叫代理。Proxy模式是最常见的模式,在我们生活中处处可见,例如我们买火车票不一定非要到火车站去买,可以到一些火车票的代售点去买。寄信不一定是自己去寄,可以把信委托给邮局,由邮局把信送到目的地,现实生活中还有很多这样的例子,就不一一列举了。
    三、 结构图
    Proxy
    模式结构图如下:
     
    四、 一个例子:杨贵妃传奇:一骑红尘妃子笑,无人知是荔枝来

    //杨贵妃传奇:一骑红尘妃子笑,无人知是荔枝来


    //事情 :杨贵妃想吃荔枝

    //杨贵妃传奇:一骑红尘妃子笑,无人知是荔枝来


    //事情 :杨贵妃想吃荔枝


    package org.fp.dp.proxy;

    //岭南:模拟Real& Proxy都要实现的那个接口Subject
    interface LinNan {
        public void productLiZhi();
    }

    //唐明皇:模拟代理类Proxy
    class KingTang implements LinNan {
        private LinNan lz;

        public KingTang(LinNan lz) {
            super();
            this.lz = lz;
        }

        
        @Override
        public void productLiZhi() {
            // TODO Auto-generated method stub
            System.out.println("国王派人去岭南拿荔枝来!");
            this.lz.productLiZhi();
        }
    }
    //杨贵妃:模拟真实主题类RealSubject
    class LadyYang implements LinNan {

        @Override
        public void productLiZhi() {
            // TODO Auto-generated method stub
            System.out.println("吃到荔枝咯... ,才说: 爱死你了,唐唐!");
        }
    }

    public class TheLegendOfLadyYang2 {
        public static void main(String args[]) {
            KingTang king = new KingTang(new LadyYang() );
            king.productLiZhi();
        }
        
    }
    /*国王派人去岭南拿荔枝来!
    吃到荔枝咯... ,才说: 爱死你了,唐唐!
    */
  • 相关阅读:
    vue 中引用echarts 初始化init undefind问题(Cannot read property ‘init‘ of undefined)
    粘性定位(position:sticky)实现固定表格表头、固定列
    js替换字符串中的空格,换行符 或 替换成<br>
    一个完整的大作业
    数据结构化与保存
    爬取所有校园新闻
    用requests库和BeautifulSoup4库爬取新闻列表
    中文词频统计及词云制作
    组合数据类型练习,英文词频统计实例
    字符串操作练习:星座、凯撒密码、99乘法表、词频统计预处理
  • 原文地址:https://www.cnblogs.com/alamps/p/2517111.html
Copyright © 2011-2022 走看看