海角不转弯

代码是梦想的砖

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

观察者模式是指一个观察者类Observer和一个被观察者类observed,被观察者的某些方法的实现会激发观察者的某些行为,举一个例子:一对情侣,女的生气了,男的看到了就会安慰她。这就是观察者模式,代码如下

 1 <?php 
 2 interface iboyfriend{
 3     function comfort();
 4     
 5 }
 6 interface igirlfriend{
 7 public function Attach($Observer); //添加观察者 
 8 public function Detach($Observer); //踢出观察者 
 9 public function Notify(); //满足条件时通知观察者 
10 public function Sorrow(); //观察条件
11 }
12 
13 class girlfriend implements igirlfriend{
14     public function Attach($Observer){
15         $this->_observers[]=$Observer;
16     }
17     public function Detach($Observer){
18         unset($this->_observers[$Observer]);
19     }
20     public function Notify(){
21         foreach ($this->_observers as $observer){
22             $observer->comfort();
23         }
24     }
25     
26     public function Sorrow(){
27         echo 'girl is sorrow';
28         $this->Notify();
29     }
30 }
31 
32 class boyfriend implements  iboyfriend{
33     public function comfort(){
34         echo '<br/>I am coming ,baby';
35     }
36 }
37 
38 $zdl=new girlfriend();
39 $ljc=new boyfriend();
40 $zdl->Attach($ljc);
41 $zdl->Sorrow();
42 
43 
44 ?>

运行一下,成功!由于能力有限,这里举的例子比较简单。

posted on 2013-03-20 19:02  海角不转弯  阅读(151)  评论(0编辑  收藏  举报