[問題] 不懂observer pattern觀察者模式的好處?

看板java作者 (踢踢~)時間8年前 (2017/04/08 08:48), 編輯推噓5(502)
留言7則, 4人參與, 最新討論串1/2 (看更多)
最近開始看一些有關於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

04/08 09:34, , 1F
因為客戶有很多種,多型所以抽象
04/08 09:34, 1F

04/08 09:35, , 2F
例如,客戶有日訂,周訂,還可以自訂,不可能if下去
04/08 09:35, 2F

04/08 09:38, , 3F
通常這種就會習慣弄個介面隔開比較好
04/08 09:38, 3F

04/08 10:47, , 4F
需求簡單跟複雜的區別
04/08 10:47, 4F

04/08 14:04, , 5F
其實你可以先看問題需求別看解法,自己先寫一套,然
04/08 14:04, 5F

04/08 14:04, , 6F
後對比看差異。之後試著更動或添加需求看看。
04/08 14:04, 6F

05/04 10:26, , 7F
open closed principle
05/04 10:26, 7F
文章代碼(AID): #1Ow3D270 (java)
文章代碼(AID): #1Ow3D270 (java)