• 《设计模式


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

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

    参考 :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

  • 相关阅读:
    mysql对库,表,数据类型的操作以及完整性约束
    mysql数据库初步了解
    响应式及Bootstrap
    事件流丶事件对象
    JQuery初识(三 )
    JQuery初识(二)
    JQuery初识
    sencha touch tpl 实现按钮功能
    sencha touch 分享到微博扩展
    sencha touch 隐藏滚动条样式的几种方式
  • 原文地址:https://www.cnblogs.com/25-lH/p/10003655.html
Copyright © 2020-2023  润新知