php设计模式 - 观察者模式

观察者模式 类图

  • Suject.php

  • ConcreteSubject.php

observerList = null;
    }
    public function getObserverList(){
        return $this->observerList;
    }
    public function addObserver($observer){
        if($this->observerList==null || in_array($observer, $this->observerList,true) == false){
            $this->observerList[] = $observer;
        }
    }
    public function deleteObserver($observer){
        if(($key = array_search($observer,$this->observerList)) !==false){
            unset($this->observerList[$key]);
        }
    }
    public function notifyObserver(){
        foreach ($this->observerList as $key => $value) {
            $value->update();
        }
    }

}
  • Observer.php


  • ConcreteObserver.php

";
    }
}
  • index.php 入口文件

addObserver($observer1);
$center->addObserver($observer2);
$center->notifyObserver();
echo "delete 1 
"; $center->deleteObserver($observer2); $center->notifyObserver();

笔者在校期间都是使用强类型的语言C++/Java等去实现算法和数据结构,现在写php感到很是不习惯。感觉php类面向对象,调试程序的时候非常麻烦。不知道xdebug可不可以解决这个问题。

你可能感兴趣的:(观察者模式,设计模式,php)