觀察者模式 Observer

2021-08-30 07:49:02 字數 1206 閱讀 8666

名字: 觀察者模式(observer)

別名: 別依賴(dependents)、發布-訂閱(publish-subscribe)

意圖: 定義物件間的一種一對多的依賴關係,當[b]乙個物件的狀態發生[/b]改變時, 所有[b]依賴於它的物件都將得到通知並自動更新[/b].

動機: 將乙個系統分割成一系列相互協作的類有乙個常見的***,需要維護相關物件間的一致性.我們不希望為了維持一致性而使各類緊密耦合,因為這樣降低了他們的可重用性.

module oberserpattern

def initialize

@observers =

enddef add_observer(observer)

@observers << observer

enddef delete_observer(observer)

@observers.delete(observer)

enddef notify_observers

@observers.each do |observer|

observer.update(self)

endend

endclass informer

include oberserpattern

attr_accessor :name

def initialize(name)

super()

self.name = name

enddef meet

puts "#說: 區安排學習十七大四中會議, 必須參加, 你通知 robin"

notify_observers

endend

class person

attr_accessor :name

def initialize(name)

self.name = name

enddef update(informer)

puts "robin, 區安排學習十七大四中會議"

puts "#說我們必須參加, 那我們去報到就回來"

endend

jin = informer.new('jin')

zheng = person.new("zheng")

jin.add_observer(zheng)

jin.meet

[img]

觀察者模式 Observer

個人理解 觀察者模式的核心是subject的attach和detach方法,載入observer物件 uml類圖 實現 public abstract class subject public void detach observer observer public void notify publ...

觀察者模式 ObServer

觀察者模式 observer 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新 觀察者模式 observer 觀察者模式定義了一對多依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。讓主題物件在狀態發生變化時,會通知所有觀察者物件,讓他們能夠自動...

觀察者模式(OBSERVER)

觀察者模式是我選擇將其列出來的第乙個模式。看了這個模式的概念之後,有種豁然開朗的感覺。工作也由實踐上公升到了理論。平時使用的各種 net 控制項都使用了這種模式,將這種模式應用到組成乙個系統的各個元件中去,怎乙個 妙 字了得。理解了它之後,不竟又對 net 的框架敬佩有佳。不知道這其中隱藏了多少未知...