java觀察者模式的實現

2021-09-08 01:23:10 字數 846 閱讀 4460

在看部落格裡,有個訂閱功能,當你訂閱後,當博主發布新的部落格,你都能收到訊息。這是如何實現的?是不是後台有個執行緒在不停的輪詢?如果是這樣的話,顯然太耗資源,如果當部落格在發布時,找到所有的訂閱者,然後迴圈的把訊息發給訂閱者,這樣就會顯得更人性化了。這就是觀察者模式,觀察者模式有兩個物件:博主,訂閱者。當讀者在訂閱時,會把讀者資訊放到乙個佇列裡面去,方便在部落格主布時迴圈這個對列並傳送訊息。如此一分析,**就出來了:

先是訂閱者:

public inte***ce observers

public class observer implements observers

}

再就是發布部落格中心了:

public inte***ce stations

public class station implements stations

@override

public void removeobserver(observers observers)

@override

public void notityobserver(string s)

}}

執行一下:

public class executor 

}

這就是整個觀察者模式的基本實現了。

應用場景及作用:

1.pub/sub(發布/訂閱)下使用

2.如果有兩個業務模組,如果需要互相通知的話,可以用這種方式進行解耦

java觀察者模式

簡單地說,觀察者模式定義了乙個一對多的依賴關係,讓乙個或多個觀察者物件監察乙個主題物件。這樣乙個主題物件在狀態上的變化能夠通知所有的依賴於此物件的那些觀察者物件,使這些觀察者物件能夠自動更新。不多說了,直接給出實現 例1 對某個事件只有乙個訂閱者的例子 author yongxing.shao pu...

觀察者模式java

根據headfirst做出實現如下 主題,觀察者,顯示三個介面。public inte ce observer public inte ce subject public inte ce displayelement 氣象資料實現主題介面 public class weather implement...

JAVA 觀察者模式

實現觀察者模式涉及到乙個類和乙個介面 observable類和observer介面 被觀察的類需要繼承observable類,在該類中的常用方法有 public voidaddobserver observer o 增加乙個觀察者觀察自己 public voiddeleteobserver obse...