• 《设计模式


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

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

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

  • 相关阅读:
    统一身份认证部署ca 问题
    用组件beanutils,dbutils简化JDBC操作
    java 几种远程服务调用协议的比较
    让Tomcat支持路径、中文文件名(浏览器的get方式) .
    Spring 2.5中JdbcTemplate类query方法的三种回调接口
    tomcat 支持文件下载
    Eclipse 插件开发遇到问题心得总结
    eclipse user library的创建
    SCSI>SAS磁盘与FC磁盘的比较说明
    关于properties文件的字符编码
  • 原文地址:https://www.cnblogs.com/25-lH/p/10003655.html
Copyright © 2020-2023  润新知