简介
发布订阅模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。
合理的的使用订阅者模式,可以减少程序之间的耦合,但是会增加内存和时间的开销。
应用
平时开发中,我们可能会经常遇到下面的情况:
loadImage(imgAry, function () {
Map.init();
Gamer.init();
})
复制代码
上面代码是一个图片加载器,在图片加载完成之后渲染地图, 执行游戏逻辑,大部分时候我们也会这么写。但有有一天,我们需要在游戏里面添加背景音乐,于是我们在
Gamer.init();
后面添加了一句Sount.init();
。表面上看起来没什么问题,但是可能会给我带来很多预想不到的结果,因为我们改变了loadImage
的结构。为了解决这种问题,我们可以把代码结构调整为下面这样:。
loadImage.listen("ready", function () {
Map.init();
})
loadImage.listen("ready",