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