每日一模式之中介者模式

<?php
//中介者模式:用一箇中介者對象來封裝一系列的對象交互。中介者使得各對象不須要顯式地相互引用,從而使其鬆散耦合,並且能夠獨立地改變它們之間的交互
//中介者模式的主要做用是解除耦合
//例如系統1 中有變動,同時須要系統2中也有變動,通常狀況下是直接在System1中調用system2的對象,這樣耦合性強不利於擴展

interface UpdateInterface{
    public function update();
}

class System1 implements UpdateInterface{
    public function update(){
        echo "更新system1\n";
    }
}

class System2  implements UpdateInterface{
    public function update(){
        echo "更新system2\n";
    }
}

class Medium{
    private $_list = array();
    public function add(UpdateInterface $obj){
        $this->_list[] = $obj;
    }
    public function updateAll(){
        foreach($this->_list as $v){
            $v->update();
        }
    }
}

$medium = new Medium();
$medium->add(new System1());
$medium->add(new System2());
$medium->updateAll();
相關文章
相關標籤/搜索