<?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();