設計模式-觀察者模式

觀察者模式,軟件設計中常用設計模式之一

使用場景多用于一個對象的一個行為會影響多個對象的場景,例如某項操作需要上報多個日志等

使用php實現:

<?php

//觀察者接口

interfaceob{

public functionupdate();

}

//觀察者1

classobOneimplementsob{

public functionupdate()

{

echo"ob1\r\n";

}

}

//觀察者2

classobTwoimplementsob{

public functionupdate()

{

echo"ob2\r\n";

}

}

//被觀察者

classbeOb

{

protected$obs;

protected functionaddOb(ob$ob){

$this->obs[]=$ob;

}

public functionact(){

echo"正常邏輯\r\n";

$this->addOb(newobOne());

$this->addOb(newobTwo());

$this->notify();

}

protected functionnotify(){

if(empty($this->obs)){

return true;

}

foreach($this->obsas$ob){

$ob->update();

}

return true;

}

}

$beOb=newbeOb();

$beOb->act();

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 版權聲明:本文為 Codeagles 原創文章,可以隨意轉載,但必須在明確位置注明出處?。?! 觀察者模式 什么是觀...
    Codeagles閱讀 498評論 0 2
  • 一、觀察者模式概述 +觀察者模式又叫做發布-訂閱模式觀察者模式定義了一種一對多的依賴關系,讓多個觀察者對象同事監聽...
    Mitchell閱讀 251評論 0 0
  • 設計模式——觀察者模式 很好理解的例子 例子:李斯監控韓非子衣食住行 一個抽象接口:被觀察者接口 一個抽象接口:抽...
    書筆年華閱讀 354評論 0 0
  • 觀察者模式中通常有兩個基本的概念主題:觀察者和被觀察者。當被觀察者狀態發生改變時,需要通知相應的觀察者,當然,每個...
    時待吾閱讀 1,083評論 0 2
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139