zoukankan      html  css  js  c++  java
  • 设计模式之代理模式

    代理模式——ProxyPattern

    代理就是真实对象的代表

    代理模式的作用

    •   1、远程代理:为一个对象在不同地址空间提供局部代表。
    •   2、虚拟代理:若要创建一个开销很大的对象,使用代理控制创建进度。
    •   3、安全代理:控制真实对象的访问权限。
    •   4、智能指引:调用真实对象时,代理处理另外的事。比如记录真实对象的某个方法使用了多少次。

    代理模式的结构:

    •   对象接口 Subject (提供与真实对象相同的方法接口)
    •   真实对象 RealSubject(继承对象接口,实现具体的方法)
    •   代理对象 Proxy(继承对象接口,在其中创建真实对象,调用真实对象相应的方法)

    代码实现:

    对象接口 Subject

    1 public interface Subject {
    2        void Request();
    3 }

    真实对象 RealSubject

    1 public class RealSubject implements Subject {
    2     @Override
    3     public void Request() {
    4         System.out.println("Real Request");
    5     }
    6 }

    代理对象 Proxy

    1 public class Proxy implements Subject {
    2     RealSubject realSubject;
    3     @Override
    4     public void Request() {
    5         if(realSubject==null) realSubject=new RealSubject();
    6         realSubject.Request();
    7     }
    8 }

    主函数

    1 public class Client {
    2     public static void main(String[] args) {
    3         Proxy proxy=new Proxy();
    4         proxy.Request();
    5     }
    6 }

    相关代码:https://github.com/lancelee98/DesignPattern/tree/master/src/ProxyPattern

  • 相关阅读:
    jq绑定on事件无效
    数字以0补全
    redis常用操作
    mysql数据操作日常
    centos端口映射
    centos7防火墙操作
    mysql5.7order by问题
    centos无法上网解决方法
    面试题
    ztree 获取子节点所有父节点的name的拼接
  • 原文地址:https://www.cnblogs.com/lancelee98/p/10276320.html
Copyright © 2011-2022 走看看