观察者模式

Run Settings
LanguagePHP
Language Version
Run Command
<?php //定义四个元素:两个接口和两个类。IObservable 接口定义可以被观察的对象,UserList 实现该接口,以便将本身注册为可观察。 //IObserver 列表定义要通过怎样的方法才能成为观察者,UserListLogger 实现 IObserver 接口。 interface IObserver { function onChanged( $sender, $args ); } interface IObservable { function addObserver( $observer ); } class UserList implements IObservable { private $_observers = array(); public function addCustomer( $name ) { foreach( $this->_observers as $obs ) $obs->onChanged( $this, $name ); } public function addObserver( $observer ) { $this->_observers []= $observer; } } class UserListLogger implements IObserver { public function onChanged( $sender, $args ) { echo( "'$args' QQ2098175794\n" ); } } $ul = new UserList(); $ul->addObserver( new UserListLogger() ); $ul->addCustomer( "陌斯" );
Editor Settings
Theme
Key bindings
Full width
Lines