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

作者: naticom (踢踢~)   2017-04-08 08:47:59
最近開始看一些有關於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
作者: swpoker (swpoker)   2017-04-08 09:34:00
因為客戶有很多種,多型所以抽象例如,客戶有日訂,周訂,還可以自訂,不可能if下去通常這種就會習慣弄個介面隔開比較好
作者: gmoz ( This can't do that. )   2017-04-08 10:47:00
需求簡單跟複雜的區別
作者: ripple0129 (perry tsai)   2017-04-08 14:04:00
其實你可以先看問題需求別看解法,自己先寫一套,然後對比看差異。之後試著更動或添加需求看看。
作者: Aidan79225 (鬼神)   2017-05-04 10:26:00
open closed principle

Links booklink

Contact Us: admin [ a t ] ucptt.com