Почему не срабатывает шаблон Observer php?

Привожу код

<?php

interface Observer {
	public function putText($text);
}

interface Observable {

	public function addObserver(Observer $o);
	public function notifyObservers();


}



class PutTextOB implements Observable {

	private $_text;
	private $_observers = array();

	public function __construct($t){

		$this->_text = $t;

	}


	public function addObserver(Observer $o){
		$this->_observers[] = $o;
 	}

 	public function notifyObservers(){
 		foreach ($this->_observers as $instance) {
 			$instance->putText($this->_text);
 		}
 	}



	public function setText(){

		$this->notifyObservers();
		file_put_contents("one.txt", $this->_text, FILE_APPEND);


	}

}



// observables objects

class onePutText implements Observer {

	public function __construct(Observable $o){
		$o->addObserver($this);
	}

	public function putText($text){
		file_put_contents("changedOne.txt", $text, FILE_APPEND);
	}

}

class twoPutText implements Observer {


	public function __construct(Observable $o){
		$o->addObserver($this);
	}


	public function putText($text){
		file_put_contents("changedTwo.txt", $text, FILE_APPEND);
	}

}








$set = new PutTextOB("lol");
$set->setText();
$set->notifyObservers();

?>


Всё это описано в одном файле, так же файлы *.txt лежат в том же каталоге, если по отдельности вызывать эти объекты и вызывать метод putText то всё пишется, но в случае паттерна, должна добавиться запись, которая увы, никак не добавляется во остальные два текстовых файла.
  • Вопрос задан
  • 2331 просмотр
Решения вопроса 1
KorsaR-ZN
@KorsaR-ZN
А где вы прикрепляете слушателей?
Как он будет работать, если его события никто не слушает!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы