PHP에서 관찰자 패턴 구현
只是没有如果
只是没有如果 2018-12-10 00:10:46
0
0
1059

// 구현 기능: 로그인 시 보안 모듈 및 광고 모듈에 알림

// 사전 정의된 인터페이스: SplObserver 관찰자 및 SplSubject 관찰자

class 사용자가 SplSubject

{

protected $login_num;

protected $hobby ;

구현 protected $_subject;

public function __construct($login_num, $hobby)

{

$this->login_num = $login_num;

$this->hobby = $hobby;

// 관찰자 저장 object

$this->_subject = new SplObjectStorage();

}

public 함수 __get($name)

{

// TODO: __get() 메서드를 구현합니다.

return $this -> $name;

}

공용 함수 login()

{

// 작업...

$this->notify();

}

// SplSubject 인터페이스

공용 함수 연결( SplObserver $observer)

{

// TODO: Attach() 메서드를 구현합니다.

$this->_subject->attach($observer);

}

공용 함수 분리(SplObserver $observer)

{

// TODO: detach() 메서드를 구현합니다.

$this->_subject->detach($observer);

}

public 함수 inform()

{

/ / TODO: 통지() 메소드를 구현합니다.

foreach ($this->_subject as $observer) {

$observer->update($this);

}

}

}

// 관찰자가 관찰합니다. 여기에 사용자 로그인

// 보안 검사

class safe는 SplObserver

{

public function update(SplSubject $subject)

{

// TODO: update() 메소드를 구현합니다.

if ($subject- >login_num > 10) {

echo '오늘 10회 이상 로그인하셨습니다. 비밀번호 유출 문제가 발생할 수 있습니다. ';

} else {

echo '오늘' . $subject->login_num '보안 로그인! ';

}

}

}

//광고 프로모션

클래스 광고는 SplObserver

{

public 함수 업데이트(SplSubject $subject)

{

// TODO: update() 메소드 구현 .

if ($subject->hobby == '스포츠') {

echo '스포츠 광고입니다! ';

} else {

echo '무작위 광고! ';

}

}

}

$hobby = ['스포츠', '먹기', '마시기', '잠', '놀이'];

$user = 신규 사용자(random_int(1, 20), $hobby[shuffle($hobby)]);

$user->attach(new safe());

$user->attach(new ad());

// 사용자 로그인

$user->login();


일 때 일련의 관찰자를 트리거합니다.
只是没有如果
只是没有如果

모든 응답(0)
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!