관찰자 패턴은 객체의 상태가 변경되면 해당 상태에 의존하는 모든 객체가 자동으로 알림을 받는 것을 의미합니다. 관찰자와 관찰자는 일대다 관계를 갖습니다. 또한 이 책에서는 현재 시스템 시간을 가져와 명령줄에 출력하는 매우 이해하기 쉬운 예를 제공합니다. 하드코딩하려는 경우 시간을 먼저 가져온 다음 표시를 처리하는 방법을 정의하는 것은 매우 간단합니다. 이와 같이 시간을 획득하는 기능은 표시 처리를 위한 드래그병이므로 재사용할 수 없습니다.
관찰자 패턴을 사용하는 경우 두 개의 클래스를 정의할 수 있습니다. 하나는 시간을 측정하고 다른 하나는 시간을 표시하는 데 사용됩니다. 시간을 표시하는 클래스는 관찰자입니다. 이것의 장점은 상호 의존성을 줄이는 것입니다. 첫 번째 클래스는 변경 후에는 아무것도 처리할 필요가 없으며 관찰자에게 특정 사항이 처리된다는 알림만 보내면 됩니다. 예를 들어, 어느 날 우리는 첫 번째 수업을 전혀 포함하지 않고 시간을 다른 형식으로 표시하거나 여러 방법으로 표시하고 싶습니다.
PHP 구현
//被观察者 class Subject { private $_observers; public function __construct() { $this->_observers = array(); } public function add_observer($obs) { $this->_observers[] = $obs; } public funtion delete_observer($bos) { $index = array_search($bos, $this->_observers); unset($this->_observers[$index]); } public function notify_observers() { foreach($this->_observers as $v) { $v->update(); } } } //观察者 class Observer { public function __construct() { do sth; } public function update() { do sth; } } //实例 $sub = new Subject(); $obs = new Observer(); $sub->add_observer($obs); $sub->notify_observers();
js 구현
js 구현은 번거롭지 않지만 배열에서 지정된 요소를 삭제하는 등 쉽게 사용할 수 있도록 몇 가지 도구 기능을 작성해야 합니다. 아래에서는 가장 간단한 구현 방법만 사용됩니다.
아아아아위 내용은 javascript와 php에서 관찰자 패턴 코드를 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!