php代理模式(proxy design)

Posted aguncn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php代理模式(proxy design)相关的知识,希望对你有一定的参考价值。

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

<?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)的主要内容,如果未能解决你的问题,请参考以下文章

结构型模式之代理模式

设计模式课程 设计模式精讲 16-4 代理模式Coding-动态代理

php设计模式 -- 代理模式

代理模式——用AOP测试业务层方法的执行时间

代理模式和php实现

代理模式和php实现