声明:本文为原创
#####请转贴时保留以下内容######
作者:GTT
请提出宝贵意见Mail:mtloveft@hotmail.com
提示:本文是介绍C与Observer design pattern!
软件设计追求的目标就是要High cohesion Loose coupling。模块间要疏松结合,模块内各个元素之间的关系紧密。高内聚也就是高功能内聚,是对软件系统中元素职责相关性和集中度的度量。如果元素具有高度相关的职责,除了这些职责内的任务,没有其它过多的工作,那么该元素就具有高内聚性,反之则为低内聚性。耦合就是对元素与元素之间的依赖的程度。低耦合也是追求的目标之一。
observer design pattern 就是一个很好的解耦的例子。
A 调用B,如果在A里直接写B的代码,那么A和B就耦合在一起了,任何一个有变化都会
影响另一个。运用observer 就可以很好的解决这个问题,在A里定义一些hook point,
让其他的程序例如B,去完成这些hook point.
最常用的就是MVC就是利用observer的一个实例,还有Event管理等也是很好的利用了
observer design pattern。
高级语言的类图如下
这里的目标Subject提供依赖于它的观察者Observer的注册register()和注销unregister()操作,并且提供了使得依赖于它的所有观察者同步的操作notify()。观察者Observer则提供一个update()操作,注意这里的Observer的update()操作并不在Observer改变了Subject目标状态的时候就对自己进行更新,这个更新操作要延迟到Subject对象发出notify通知所有Observer进行修改call update()。
再看C实现的Observer design pattern.也就是通知链表,就是事件通知。
结构如下
方法如下
register_netdevice_notifier()
unregister_netdevice_notifier()
notifier_call_chain()
是不是跟Observer思想一样。
详细的以后再追加......
阅读(484) | 评论(0) | 转发(0) |