作者naticom (踢踢~)
看板java
標題[問題] 不懂observer pattern觀察者模式的好處?
時間Sat Apr 8 08:47:59 2017
最近開始看一些有關於design pattern的東西,感覺都不是很直覺會想出的方法
Observer pattern 在講解的時候,幾乎大家都拿訂閱報紙當例子
https://dotblogs.com.tw/joysdw12/archive/2013/03/13/96531.aspx
例如這篇網誌
但我真的不太懂為什麼要用一個什麼oberver pattern拿來做這種事情比較好?
直觀來說,我們建立一個報社class,裡面有個array儲存所有的讀者
SubscribeNewspaper()
UnsubscribeNewspaper()
SendNewspaper()
都是這個報社class的member function
讀者class提供update() function
SubscribeNewspaper()基本上把新的讀者加入array
UnsubscribeNewspaper()把讀者踢出array
SendNewspaper()依序traverse array中的讀者,並且呼叫讀者的update()
為什麼要拐個彎搞出個介面呢?
還請前輩們指教,是不是我OO觀念太薄弱造成的orz
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 24.80.2.98
※ 文章網址: https://www.ptt.cc/bbs/java/M.1491612482.A.1C0.html
推 swpoker: 因為客戶有很多種,多型所以抽象 04/08 09:34
→ swpoker: 例如,客戶有日訂,周訂,還可以自訂,不可能if下去 04/08 09:35
推 swpoker: 通常這種就會習慣弄個介面隔開比較好 04/08 09:38
推 gmoz: 需求簡單跟複雜的區別 04/08 10:47
推 ripple0129: 其實你可以先看問題需求別看解法,自己先寫一套,然 04/08 14:04
→ ripple0129: 後對比看差異。之後試著更動或添加需求看看。 04/08 14:04
推 Aidan79225: open closed principle 05/04 10:26