PHP 관찰자 모드 정의 및 용법 인 스 턴 스 분석
내 가 이해 하 는 관찰자 모델 은 우리 가 사건 을 촉발 할 때 이 조작 을 내 가 알려 주 고 싶 은 대상 에 게 알려 주 고 그들 이 모두 이 조작 을 수행 하도록 하 는 것 이다.바로 그들 을 이 사건 에 연결 시 키 는 것 이다.
1.기본 클래스 를 정의 합 니 다.
EventGenerator.php
<?php
abstract class EventGenerator
{
// , ,
private $observers = array();
// ,
public function addObserver($observer)
{
$this->observers[] = $observer;
}
//
public function notify()
{
//
foreach($this->observers as $observer)
{
// update , update , ,
$observer->update();
}
}
}
?>
인터페이스 파일 을 정의 하여 모든 관찰자 가 update 방법 Observer.php 를 실현 하도록 합 니 다.
<?php
interface Observer
{
function update();
}
?>
관찰자 모드 를 구현 하 는 파일 Event.php 를 정의 합 니 다.
<?php
header('Content-Type:text/html;charset=utf-8');
define('BASEDIR', __DIR___);
require 'Config.php';
spl_autoload_register('Config::autoload');
//
class Event extends EventGenerator
{
//
public function trigger()
{
echo ' !<br/>
';
//
$this->notify();
}
}
// 1
class Observer1 implements Observer
{
public function update()
{
echo ' 1, ! !<br/>
';
}
}
// 2
class Observer2 implements Observer
{
public function update()
{
echo ' 2, ! !<br/>
';
}
}
// !
$event = new Event();
//
$event->addObserver(new Observer1);
$event->addObserver(new Observer2);
// trigger
$event->trigger();
// !
// !
// 1, ! !
// 2, ! !
?>
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.