Heim >Backend-Entwicklung >PHP-Tutorial >Implementierungscode für das PHP-Beobachtermuster

Implementierungscode für das PHP-Beobachtermuster

小云云
小云云Original
2018-02-12 10:36:481368Durchsuche

Dieser Artikel stellt hauptsächlich das in PHP implementierte Beobachtermuster vor. Er analysiert die Definition und Verwendung des Beobachtermusters in PHP anhand spezifischer Beispiele. Ich hoffe, dass es allen helfen kann.


<?php
  //定义观察者调用接口
  class transfer{
    protected $_observers = array();
    //注册对象
    public function register($sub){
      $this->_observers[] = $sub;
    }
    //外部统一调用
    public function trigger(){
      if(!empty($this->_observers)){
        foreach($this->_observers as $observer){
          $observer->update();
        }
      }
    }
  }
  //观察者接口
  interface obserable{
    public function update();
  }
  //实现观察者
  class listen implements obserable{
    public function update(){
      echo &#39;now first time you need to do listen<br/>&#39;;
    }
  }
  class read implements obserable{
    public function update(){
      echo &#39;now first time you need to read<br/>&#39;;
    }
  }
  class speak implements obserable{
    public function update(){
      echo &#39;now first time you need to speak<br/>&#39;;
    }
  }
  class write implements obserable{
    public function update(){
      echo &#39;now first time you need to write<br/>&#39;;
    }
  }
  $transfer = new transfer();
  $transfer->register(new listen());
  $transfer->register(new read());
  $transfer->register(new speak());
  $transfer->register(new write());
  $transfer->trigger();

Verwandte Empfehlungen:

Detaillierte Erläuterung von Beispielen für JavaScript-Beobachtermuster

NodeJS Einzelbeispielmodus, Adaptermodus, Dekorationsmodus, Zusammenfassung des Beobachtermodus

Detaillierte Erläuterung des Beobachtermodus des PHP-Entwurfsmusters

Das obige ist der detaillierte Inhalt vonImplementierungscode für das PHP-Beobachtermuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn