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

    定义:

    代理模式(Proxy):在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节。

     

    结构:

    • Subject:subject 类,定义了 RealSubject 和 Proxy 的共用接口,这样就在任何使用 RealSubject的地方都可以使用 Proxy。
    • RealSubject:RealSubject 类,定义 Proxy 所代表的真实实体。
    • Proxy:实现Subject 接口并在内部引用了 RealSubject。
    • Client:客户端代码。

     

    代码实例:

    /**
     * Subject.php
     * Interface Subject
     */
    interface Subject
    {
        public function request();
    }
    
    
    /**
     * RealSubject.php
     * Class RealSubject
     */
    class RealSubject implements Subject
    {
        /**
         * 真实请求方法具体实现
         */
        public function request()
        {
            // TODO: Implement request() method.
            echo "真实的请求<br/>
    ";
        }
    }
    
    
    /**
     * Proxy.php
     * Class Proxy
     */
    class Proxy implements Subject
    {
        /**
         * @var RealSubject
         */
        protected $realSubject;
    
        /**
         * Proxy constructor.
         */
        public function __construct()
        {
            $this->realSubject = new RealSubject();
        }
    
        /**
         * 调用真实请求方法
         */
        public function request()
        {
            // TODO: Implement request() method.
            $this->realSubject->request();
        }
    }

    客户端调用:

    $proxy = new Proxy();
    $proxy->request();
  • 相关阅读:
    CF1096C Polygon for the Angle
    CF1149A Prefix Sum Primes
    CF1153C Serval and Parenthesis Sequence
    leetcode134 Gas Station
    leetcode23 Merge k Sorted Lists
    leetcode982 Triples with Bitwise AND Equal To Zero
    CF1110C Meaningless Operations
    【bzoj4567】SCOI2016背单词
    【不定期更】【友链整理】
    【bzoj2006】NOI2010超级钢琴
  • 原文地址:https://www.cnblogs.com/woods1815/p/13846511.html
Copyright © 2011-2022 走看看