前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【php设计模式】代理模式

【php设计模式】代理模式

作者头像
码缘
发布2019-06-17 16:01:35
3880
发布2019-06-17 16:01:35
举报

代理模式就是实现一个类代表另一个类的功能的一种结构性设计模式。

主要解决在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

下面实现一个图片处理类,但是在使用的时候不直接调用这个实际的类,而是通过代理类的方式去使用。

<?
interface Image{
    public function display();
}

class RealImage implements Image{
    public $filename;
    public function __construct($file_name){
        $this->filename = $file_name;
        $this->loadImage();
    }

    public function display(){
        echo "显示图片:{$this->filename}\n";
    }

    public function loadImage(){
        echo "加载图片:{$this->filename}\n";
    }
}

class ProyImage implements Image{
    public $realImage;
    public $filename;
    public function __construct($file_name){
        $this->filename = $file_name;
    }

    public function display(){
        if(!$this->realImage){
            $this->realImage = new RealImage($this->filename);
        }
        $this->realImage->display();
    }
}

$proy_image = new ProyImage("php.jpg");
$proy_image->display();
$proy_image->display();

//输出:
//加载图片:php.jpg
//显示图片:php.jpg
//显示图片:php.jpg
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档