关键词:
概念
观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。
作用
- 支持简单的广播通信,自动通知所有已经订阅过的对象
- 页面载入后目标对象很容易与观察者存在一种动态关联,增加了灵活性
- 目标对象与观察者之间的抽象耦合关系能够单独扩展以及重用
注意事项
监听要在触发之前
<script type="text/javascript">
(function () {
var o = $({});
$.jianting = function () {
o.on.apply(o, arguments);
}
$.fabu = function () {
o.trigger.apply(o, arguments);
}
$.qingchu = function () {
o.off.apply(o,arguments);
}
})();
$.jianting(‘/test/ls‘, function (e,a,b,c) {
alert(a+"||"+b+"||"+c+"||");
});
$.jianting(‘/test/ls‘, function (e,a,b,c) {
alert(‘ok‘);
});
setTimeout(function () {
$.fabu(‘/test/ls‘, [1,2,3]);
}, 1000);
</script>
javascript设计模式--行为型--设计模式之observer观察者模式(19)(代码片段)
JAVASCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVASCRIPT语言来实现主体功能,所以不可能像C++,JAVA等面向对象语言一样严谨,大部分程序都附上了JAVASCRIPT代码,代码只是实现了... 查看详情
javascript设计模式--行为型--设计模式之observer观察者模式(19)(代码片段)
JAVASCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVASCRIPT语言来实现主体功能,所以不可能像C++,JAVA等面向对象语言一样严谨,大部分程序都附上了JAVASCRIPT代码,代码只是实现了... 查看详情
设计模式之观察者模式
先看看维基定义:Theobserverpatternisasoftewaredesugnpatterninwhichanobject,calledthesubject,maintainsalistofitsdependents,calledobservers,andnotifesthemautomaticallyofanystatechanges,usuallybycallingoneofthei 查看详情
设计模式之观察者模式
设计模式之观察者模式一、什么事观察者模式 如:有A,B连个独立的对象,其中B想时时知道A中的变化,以便做出相应的相应或对策。这就是观察者模式 A为被观察者,B为观察者。A、B同时均可以为被观察者。 观察者和... 查看详情
设计模式之观察者模式
杨哥说观察者设计模式,通俗易懂,只要看图和例子即可。//通知者接口packageguanchazhe_designmode;//抽象观察者publicabstract classObserver{protectedStringname; protectedSubjectsub; publicObserver(Stringname,S 查看详情
javascript学习之事件
...事件发生时,处理程序中的代码得到执行(这种模型对应设计模式中的观察者模式)。1.2事件流 事件流描述的是从页面接受事件的顺序。2事件流2.1事件冒泡 IE事件流叫做事件冒泡,即事件开始由最具体的元素接受,然后... 查看详情
戏说模式之:观察者模式(三体)
...View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现... 查看详情
设计模式之观察者模式
...View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现... 查看详情
设计模式之观察者模式
一、背景 随着工作时间的越来越长,发现对设计模式缺失的坏处越来越明显,但是当你知道某种设计模式的实现方式以后,你会发现,其实工作中早已经玩过这些东西,但是你之前并不知道它属于设计模式的一种,今天就先... 查看详情
常用设计模式之观察者模式+事件委托
常用设计模式之观察者模式+事件委托作用及UML(摘自《大话设计模式》) Code1abstractclassSubject{2protectedStringstate;3publicvoidsetState(Stringstate){this.state=state;}4publicStringgetState(){returnthis.state;}56privateList<O 查看详情
设计模式之--观察者模式
被观察者:/***购物车(被观察的对象,购物车添加了商品及时通知处理)*Createdbyyouaijjon2018/5/12.*/publicclassShoppingCartextendsObservableprivateList<Product>productList=newArrayList<Product>();;publicShoppingCart 查看详情
设计模式之观察者模式
1、类图观察者模式结构:实例类图 2、创建项目…………………………3、 AllyControlCenter:指挥部(战队控制中心)类,充当抽象目标类 usingSystem;usingSystem.Collections.Generic; namespaceObserverSample{ abstract... 查看详情
23种设计模式之观察者模式
观察者模式(Observer):定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 查看详情
大话设计模式之观察者模式
观察者模式 定义了一种一对多的依赖关系,让多个观察者对象去监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。下面通过代码去探索观察者模式的奥秘:通过面向... 查看详情
java设计模式之观察者模式
观察者模式是对象的行为模式,又叫做发布-订阅-模式、模型-视图-模式、源-监听器-模式或者从属者模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象... 查看详情
设计模式之观察者模式
观察者模式:定义对象之间的一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自己更新自己。 publicabstractclassComponent{privateList<Obse... 查看详情
设计模式之观察者模式
观察者模式:在对象之间定义一对多的依赖。这样一来当一个对象改变状态,依赖他的对象都会收到通知并自动更新。我觉得:观察者模式的关键在于使用统一定义的接口。通过接口来操作对象。观察者/被观察者分别通过接口... 查看详情
设计模式之二:观察者模式(observerpattern)
先看下观察者模式的定义: TheObserverPatterndefinesaone-to-manydenpendencybetweenobjectssothatwhenoneobjectchangesstate,allofitsdependentsarenotifiedandupdatedautomatically.:观察者模 查看详情