观察者模式在实际用的多吗

欣儿 发布于 2015/07/02 20:06
阅读 990
收藏 1
看社区和一些问答社区,观察者模式讨论得比较少,是实际就用的很少吗?
加载中
0
长安俞白眉
长安俞白眉
观察者模式应该是实际当中应用最多的设计模式之一,至少前三
长安俞白眉
长安俞白眉
回复 @欣儿 : 如果你想了解设计模式我推荐你看《Head First设计模式》这是我看过的最好的设计模式的书
欣儿
欣儿
好像讨论得不多啊
0
终曲
终曲

几乎到处都在用,感觉仅次于单例和工厂了,讨论少个人认为是这个模式用法很明确,而且很多语言里都已经为你实现了一部分(至少我接触的是),比如Java里的Observe、PropertyChange等,WP(C#)里数据绑定后,数据修改同步到界面,甚至可以说C#和OC的delegate也算,你应该知道委托的应用有多广

终曲
终曲
回复 @欣儿 : 要看你怎么理解了,比如http异步,可以看成是观察请求状态,在status变为200之后执行success里的回调函数,变成4xx或者5xx执行fail里的,其实说多了都是文字游戏,没必要去纠结,代码写多了自然有自己的想法了
欣儿
欣儿
异步的也算吗?
首席撸肾虚
首席撸肾虚
+1,那些回调函数,listener也算吧?
0
0
南湖船老大
南湖船老大
你是用代码的,而不是开发代码的,所以觉得少
欣儿
欣儿
开发代码?
0
maxos
maxos
你到底明白什么是观察者模式吗?你点一个按钮出现一个响应就是观察者模式
maxos
maxos
有多种方式可以实现, C/C++中用回调函数比较多,Java多用接口实现, C#多用委托(一种类似回调函数的类型)实现
欣儿
欣儿
这个好像是喔。那,代码方面怎么去监听目标的变化?
0
WolfCS
WolfCS

引用来自“maxos”的评论

你到底明白什么是观察者模式吗?你点一个按钮出现一个响应就是观察者模式
确定这种是观察者模式吗?怎么感觉是监听者模式呢?
欣儿
欣儿
可以认为一对一是一对多的特列吗?
WolfCS
WolfCS
回复 @欣儿 : GoF版设计模式里,这样描述观察者模式的意图:定义对象间的一种一对多的依赖关系 ,当一个对象的状态发生改变时 , 所有依赖于它的对象 都得到通知并被自动更新。对象间是一种一对多的关系。但点一个按钮出现一个响应这种case,与观察者似乎还是有一些区别的吧。这种实际上是一对一的关系啊。比如像Android里的View/Button,只能设置一个listener吧。
欣儿
欣儿
观察者模式跟监听者模式不是一样吗?
0
zigzagroad
zigzagroad
用得挺多的,需要1对多的得到通知的场合都适用。
返回顶部
顶部