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

  • 相关阅读:
    Bzoj1072--Scoi2007排列perm
    Bzoj1041--Haoi2008圆上的整点
    Bzoj3932--Cqoi2015任务查询系统
    HDU 1024 Max Sum Plus Plus(DP)
    HDU 1029 Ignatius and the Princess IV
    【noip模拟题】数列
    Hello World
    vue-router 进阶
    vue2.0 源码解读(二)
    vue2.0 源码解读(一)
  • 原文地址:https://www.cnblogs.com/lancelee98/p/10276320.html
Copyright © 2011-2022 走看看