Java設計模式 觀察者模式

2021-08-17 16:51:17 字數 1448 閱讀 7232

觀察者模式即發布訂閱模式,發布者發布資訊,訂閱者獲取資訊。當發布者改變狀態時,依賴它的訂閱者會收到通知並自動更新。

抽象被觀察者角色:提供增加、刪除、通知觀察者的介面。

具體被觀察者角色:用乙個集合儲存所有被觀察者物件,實現增加、刪除、通知觀察者的功能。

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

具體觀察者角色:實現抽象觀察者角色所需要的更新介面。

抽象被觀察者角色:obverable

public

inte***ce obverable

具體被觀察者角色:magazine

public

class

magazine

implements

obverable

@override

public

void

removeobserver(observer observer)

@override

public

void

notifyobserver()

}public

void

publishnews(string msg)

}

抽象觀察者角色:observer

public

inte***ce observer

具體觀察者角色:readera、readerb、readerc

public

class

readera

implements

observer

}

public

class

readerb

implements

observer

}

public

class

readerc

implements

observer

}

在observertest中呼叫magazine並註冊reader,magazine發布訊息後,各reader能收到訊息

public

class observertest

}

執行結果如下:

readera, msg=msg1

readerb, msg=msg1

readerc, msg=msg1

readerb, msg=msg2

readerc, msg=msg2

java設計模式 觀察者模式

本例以貓和老鼠來講解觀察者,首先定義觀察者為 老鼠和主人,被觀察者為貓,如下 public inte ce observer public class event public string getname public class mouse implements observer public ...

Java設計模式 觀察者模式

在物件之間定義一對多的依賴關係,這樣一來,當乙個物件改變狀態,依賴它的物件都會收到通知,並自動更新。比如有乙個天氣的資料來源,和需要獲取天氣資料的觀察者。天氣資料不定時更新。而觀察者也是隨時訂閱和取消訂閱天氣資料來源。在訂閱時,希望每次天氣資料更新時觀察者都可以獲取資訊。天氣資料來源作為被觀察的主題...

Java設計模式 觀察者模式

觀察者模式是乙個使用率非常高的的模式,它是一套訂閱 發布系統,這個模式最重要的作用就是將訂閱者和被訂閱者解耦。定義物件間一種對多種的依賴關係,使得每當乙個物件改變狀態,則所有依賴於它的物件都會得到通知。subject 抽象主題類,也就是被觀察者 observable 把所有觀察者物件儲存在乙個集合裡...