ajax php 观察者模式,如何使用观察者模式?

我才刚刚开始了解观察者模式的工作原理。但是现在我想使用它。我看到了很多观察者模式的示例,但大多数只是简单地演示了该模式,而没有显示其已完成以完成任务。

我了解观察者会被某个对象通知。但是,我怎样才能让观察者做某事呢?

下面的代码是一个常见的Observer Pattern程序。我看到console.log("Observer " + number + " is notified!");通知观察者时,它执行console.log()。我是否可以在这里返回其他内容:值,函数调用等?

我看过带有简单数学运算的可视示例,这些可视示例在通知观察者时会更新计算(即成本+税费=总计)。但是我找不到一个示例来说明代码是如何实现的。1.如何/在何处返回新成本,以及2.因此,观察者(一个函数?)被告知成本已改变;该功能如何/在何处接收更新的费用?

我是新手,模式本身有点令人困惑。我希望看到一个超级基本的示例程序。

var Subject = function() {

let observers = [];

return {

subscribeObserver: function(observer) {

observers.push(observer);

},

unsubscribeObserver: function(observer) {

var index = observers.indexOf(observer);

if(index > -1) {

observers.splice(index, 1);

}

},

notifyObserver: function(observer) {

var index = observers.indexOf(observer);

if(index > -1) {

observers[index].notify(index);

}

},

notifyAllObservers: function() {

for(var i = 0; i < observers.length; i++){

observers[i].notify(i);

};

}

};

};

var Observer = function(number) {

return {

notify: function() {

console.log("Observer " + number + " is notified!");

}

}

}

var subject = new Subject();

var observer1 = new Observer(1);

var observer2 = new Observer(2);

subject.subscribeObserver(observer1);

subject.subscribeObserver(observer2);

subject.notifyObserver(observer2);

subject.unsubscribeObserver(observer2);

subject.notifyAllObservers();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值