java觀察者模式

2021-09-24 09:43:52 字數 1171 閱讀 6247

/**

* @author gjing

* 抽象被觀察者

**/abstract

class

abstractsubject

/** * 通知所有觀察者

*/void

notifyobserver()

}}/** * @author gjing

* 具體被觀察者

**/class

abstractsubjecta

extends

abstractsubject

}

/**

* @author gjing

* 抽象觀察者

**/public

inte***ce

listener

/** * @author gjing

* a觀察者

**/class

listenera

implements

listener

@override

public

void

update

(string message)

}/**

* @author gjing

* 觀察者b

**/class

listenerb

implements

listener

@override

public

void

update

(string message)

}

/**

* @author gjing

**/public

class

test

}

觀察者和被觀察者之間抽象耦合。觀察者模式容易擴充套件,被觀察者只持有觀察者集合,並不需要知道具體觀察者內部的實現。

物件之間的保持高度的協作。當被觀察者發生變化時,所有被觀察者都會通知到,然後做出相應的動作。

如果觀察者太多,被觀察者通知觀察者消耗的時間很多,影響系統的效能。

當觀察者集合中的某一觀察者錯誤時就會導致系統卡殼,因此一般會採用非同步方式。

以上為個人理解,如有誤歡迎各位指正

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...