推模式与拉模式
推模式是当通知消息来之时,把所有相关信息都通过参数的形式“推给”观察者。而拉模式是当通知消息来之时,通知的函数不带任何相关的信息,而是要观察者主动去“拉”信息。推模式的优点是当消息来临时,观察者很直接地都到信息,然后进行相关地处理,与被观察者没有一点联系,两者几乎没有耦合。推模式的缺点是当消息来临时,所有的信息都强迫观察者,不管有用与否。还有一个致命的缺点是,如果想在通知消息中添加一个参数,那么所有的观察者都需要修改了,这一点往往被忽视。看来事物都有其两面性一点都不假,信息太全也不是一件好事。“存在即有理由”,为了弥补推模式的不足,拉模式就诞生了。
拉模式是观察者按照自己的意图定制信息,符合定制要求的信息才会弹出到观察者的视野,所以拉模式的出现是在信息海量化之后的更新的一种方式,其魅力在于信息搜索,知识选择和积累。可广泛应用于各种商业智能系统,如知识管理系统。