码迷,mamicode.com
首页 > Web开发 > 详细

php代理模式(proxy design)

时间:2019-07-14 09:38:11      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:caching   VID   private   wrap   img   模式   nes   pat   addition   

结构模式最后一个,接着进入行为模式。

<?php
/*
The proxy design pattern functions as an interface to an original object behind
the scenes. It can act as a simple forwarding wrapper or even provide additional
functionality around the object it wraps. Examples of extra added functionality
might be lazy loading or caching that might compensate for resource intense
operations of an original object.
*/

interface ImageInterface {
    public function draw();
}

class Image implements ImageInterface {
    private $file;
    
    public function __construct($file) {
        $this->file = $file;
        sleep(2);
    }
    
    public function draw() {
        echo ‘image: ‘ . $this->file . ‘<br/>‘;
    }
}

class ProxyImage implements ImageInterface {
    private $image = null;
    private $file;
    
    public function __construct($file) {
        $this->file = $file;
    }
    
    public function draw() {
        if (is_null($this->image)) {
            $this->image = new Image($this->file);
        }
        
        $this->image->draw();
    }
}

$image = new Image(‘image.png‘);
$image->draw();

$image = new ProxyImage(‘image.png‘);
$image->draw();
?>

技术图片

php代理模式(proxy design)

标签:caching   VID   private   wrap   img   模式   nes   pat   addition   

原文地址:https://www.cnblogs.com/aguncn/p/11183033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!