[问题] 不懂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