观察者模式
在面向对象中,主题就是提供注册和通知的接口,观察者提供操作的接口;观察者利用主题的接口香猪蹄注册,主题利用观察者的接口通知观察者,这样程序代码的耦合度就低;
在面向对象中,复用类的方法有很多,尽量多用组合实现,这样代码的耦合度就比较低,容易后续扩展;
代码示例
<?php abstract class subject { protected $observers; public function addobserver($key,Equipment $observer) { $this->observers[$key] = $observer; } } abstract class Equipment { abstract function update($temp); abstract function display(); } class weather extends subject { private $_temp; public function notify() { foreach($this->observers as $observe) { $observe->update($this->_temp); } } public function datachange($temp) { $this->_temp = $temp; $this->notify(); } } class ipad extends Equipment { private $_temp; public function update($temp) { $this->_temp = $temp; $this->display(); } public function display() { echo $this->_temp; } } $observe_ipad = new ipad(); $weather = new weather(); $weather->addobserver('ipad',$observe_ipad); $weather->datachange('38');