PHP 代理模式

 

代理模式:爲其餘對象提供一種代理以控制對這個對象的訪問。php

 

代理模式中主要角色this

抽象主題角色:聲明瞭代理主題和真實主題的公共接口,使任何須要真實主題的地方都能用代理主題代替。代理

代理主題角色:含有真實主題的引用,從而能夠在任什麼時候候操做真實主題,代理主題功過提供和真實主題相同的接口,使它能夠隨時代替真實主題。代理主題經過持有真實主題的引用,不但能夠控制真實主題的建立或刪除,能夠在真實主題被調用前進行攔截,或在調用後進行某些操做。對象

真實代理對象:定義了代理角色所表明的具體對象。blog

 

interface Person{
    public function playGame();
    public function kill();
}

class Gaoshou implements Person {           # 代理主題角色

    public function playGame(){
        echo "我是王者<br/>";
    }

    public function kill(){
        echo "penta kill<br/>";
    }
}


class Proxy  implements Person {              # 代理
    protected $obj;

    public function __construct(Person $obj)
    {
        $this->obj = $obj;
    }

    public function playGame()
    {
        $this->obj->playGame();
    }

    public function kill()
    {
        $this->obj->kill();
    }
}

$obj = new Proxy(new Gaoshou());
$obj->playGame();
$obj->kill();

輸出:接口

我是王者
penta killio

相關文章
相關標籤/搜索