zoukankan      html  css  js  c++  java
  • 《设计模式

    最近真是忙到死......

    其实还是自己偷懒了......

    参考 :PHP设计模式——代理模式

     一:什么是代理模式?

      - 拿生活中例子其实很容易理解

        - 小王,帮我告诉下老师,今天我生病了,不能去教室了。

          - 这时候,小王就是你的代理代你去告诉老师你的事情。

        - 老王,我喜欢一个女孩,你帮我把这封情书送给小静吧。

          - 老王,就是你送情书的代理。

    二:为什么要用代理模式?

      - 理解了代理模式之后,我也们很清楚的明白的代理模式的用处。

      - 解决了目标和对象之间的 (不方便) 等等阻碍。

      - 起到了中介的作用,同时保护目标和对象。

    三:代理模式的优缺点?

      - 缺点

        - 对象克隆,造成多余开销

        - 逻辑拆分

      - 优点

        - 代码清晰,高扩展

       

    四:简单实现一个代理模式?

    <?php
    /**
     * Created by PhpStorm.
     * User: LYL
     * Date: 2015/5/16
     * Time: 16:33
     */
     
    /**顶层接口
     * Interface IGiveGift
     */
    interface IGiveGift
    {
        function giveRose();
        function giveChocolate();
    }
     
    /**追求者
     * Class Follower
     */
    class Follower implements IGiveGift
    {
        private $girlName;
     
        function __construct($name='Girl')
        {
            $this->girlName=$name;
        }
     
        function giveRose()
        {
            echo "{$this->girlName}:这是我送你的玫瑰,望你能喜欢。";
            echo PHP_EOL;
        }
     
        function giveChocolate()
        {
            echo "{$this->girlName}:这是我送你的巧克力,望你能收下。";
            echo PHP_EOL;
        }
    }
     
    /**代理
     * Class Proxy
     */
    class Proxy implements IGiveGift
    {
        private $follower;
     
        function __construct($name='Girl')
        {
            $this->follower = new Follower($name);
        }
     
        function giveRose()
        {
            echo "代理送出 - ";
            echo PHP_EOL;
            $this->follower->giveRose();
        }
     
        function giveChocolate()
        {
            echo "代理送出 - ";
            echo PHP_EOL;
            $this->follower->giveChocolate();
        }
    }
    
    $proxy=new Proxy('范冰冰');
    $proxy->giveRose();
    $proxy->giveChocolate();

    github

  • 相关阅读:
    centos7 killall 命令
    移动硬盘拒绝访问问题解决方法
    Linux实现内容分发的主备模式的智能DNS
    UWB DWM1000 跟随小车原理--- 原理代码解析
    DWM1000 自动应答代码实现与实例
    UWB DWM1000 跟随小车原理---一张图演示
    DWM1000 帧过滤代码实现
    Bphero-UWB 基站0 和 电脑串口数据格式定义
    DW1000 用户手册中文版 附录3:双向测距(Two-Way Ranging)
    DW1000 用户手册中文版 附录2 IEEE-802.15.4 MAC层
  • 原文地址:https://www.cnblogs.com/25-lH/p/10003655.html
Copyright © 2011-2022 走看看