一个对象通过添加一个方法(该方法允许另一个对象,即观察者 注册自己)使本身变得可观察 当前实例化的例调用别一个类的一个对象使两者可以通信 header('Content-Type:text/html;charset=utf-8'); class user1{ private $addUser = array(); //用来保存添加的类 //对user2类进行方法观察 public function content($name){ foreach($this->addUser as $user){ $user->send($name); } } //添加要观察的用户类 public function addUser($className){ $this->addUser[] = new $className(); } } class user2{ public function send($name){ echo "my name is $name"; } } $u1 = new user1(); $u1->addUser('user2'); $u1->content('john');
转载于:https://my.oschina.net/u/868897/blog/339258