作者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://webptt.com/cn.aspx?n=bbs/java/M.1491612482.A.1C0.html
1F:推 swpoker: 因为客户有很多种,多型所以抽象 04/08 09:34
2F:→ swpoker: 例如,客户有日订,周订,还可以自订,不可能if下去 04/08 09:35
3F:推 swpoker: 通常这种就会习惯弄个介面隔开比较好 04/08 09:38
4F:推 gmoz: 需求简单跟复杂的区别 04/08 10:47
5F:推 ripple0129: 其实你可以先看问题需求别看解法,自己先写一套,然 04/08 14:04
6F:→ ripple0129: 後对比看差异。之後试着更动或添加需求看看。 04/08 14:04
7F:推 Aidan79225: open closed principle 05/04 10:26