網際網路架構 精講設計模式 007 觀察者模式

2021-10-10 15:18:43 字數 3542 閱讀 3596

課程內容:

1、什麼是觀察者、觀察者模式應用場景

2、觀察者實現的思路有那些

3、基於jdk自帶觀察者模式實現訊息非同步傳輸

4、基於springboot專案實現觀察者模式

什麼是觀察者模式

在物件之間定義了一對多的依賴,這樣一來,當乙個物件改變狀態,依賴它的物件會收到通知並自動更新。

其實就是發布訂閱模式,發布者發布資訊,訂閱者獲取資訊,訂閱了就能收到資訊,沒訂閱就收不到資訊。

觀察者模式應用場景

zookeeper事件通知節點、訊息訂閱通知、安卓開發事件註冊、分布式配置中心

抽象主題(被觀察者):它把所有對觀察者物件的引用儲存在乙個集合中,每個主題都可以有任意數量的觀察者。抽象主題提供乙個介面,可以增加和刪除觀察者角色。

抽象觀察者:為所有的具體觀察者定義乙個介面,在得到主題通知時更新自己。

具體主題(被觀察者):在具體主題的內部狀態改變時,向所有註冊過的觀察者發出通知。

具體觀察者:實現抽象觀察者角色的更新介面,一邊使本身的狀態與主題的狀態相協調。

抽象觀察者

public

inte***ce

observer

抽象主題

public

inte***ce

abstractsubject

具體主題

public

class

wechatsubject

implements

abstractsubject

@override

public

void

removeobserver

(observer observer)

@override

public

void

notifyobserver

(string message)

}}

具體觀察者

public

class

userobserver

implements

observer

@override

public

void

update

(string message)

}

測試類

public

class

test001

}

執行結果

1.observer(觀察者)

2.observable(主題)追蹤所有的觀察者,並通知他們。

自定義主題

public

class

messageobservable

extends

observable

}

自定義觀察者

public

class

smsobserver

implements

observer

}

public

class

emailobserver

implements

observer

}

public

class

wechatobserver

implements

observer

}

執行監聽開始

public

class

testjdkobserver

}

測試結果:

注意:實際開發中具體觀察者中的方法要非同步處理,要單獨有執行緒去執行這段**。

spring封裝事件監聽

spring實現事件通知,底層是採用觀察者模式封裝的

下單訊息事件 ordermessageevent

public

class

ordermessageevent

extends

public jsonobject getjsonobject()

public

void

setjsonobject

(jsonobject jsonobject)

}

事件監聽者 emaillistener/smslistener

@component

public

class

emaillistener

implements

}

@component

public

class

smslistener

implements

}

控制層

@restcontroller

public

class

ordercontroller

}

啟動類@enableasync

public

class

}執行結果

網際網路架構

網際網路架構,主要追求的是高可用,可擴充套件 這兩個特性 在這裡做了一些個人的總結,算是給2014年的工作做個總結。推陳出新 一定要做的,死守積累會逐漸丟失人才,但凡技術公司都會不斷更新技術 kiss原則 keep it stupid優秀的 都會很簡單,簡單理解,簡單更改,能把複雜的事情做簡單是一種...

網際網路架構

使用者在同一時間內大量的訪問伺服器,tomcat伺服器併發能力為 200 250左右 jvm調優為1000 硬體條件 物理伺服器處理能力 網路頻寬 2.1 分布式計算 由多個執行緒,共同來完成某項特定的任務,拆合問題 2.2 分布式系統 distributed system 是建立在網路之上的軟體系...

網際網路商務模式

o2o即online to offline,是指將線下的商務機會與網際網路結合,讓網際網路成為線下交易的平台,這個概念最早 於美國。o2o的概念非常廣泛,既可涉及到線上,又可涉及到線下,可以通稱為o2o。主流商業管理課程均對o2o這種新型的商業模式有所介紹及關注。2013年o2o進入高速發展階段,開...