概述
设计模式:
在已有js语法的基础上, 进行语法整合(设计), 形成一个固定模式(用法), 每个设计模式都是为了解决某种问题.
其他设计模式: 工厂模式, 目的是为了批量创建对象.
设计模式一: 单例模式 , 为了实现只创建一个对象.
发布订阅模式:
//创建一个匿名函数,因为没有变量名,会报错,所以用括号将他括起来
(function () {
//在内部再创建一个observe函数
function observe() {
//创建一个订阅者函数,传递两个参数
//第一个参数是传递的是接收的消息类型,即是谁发布的消息,是一个字符串
//第二个参数是接受消息的函数
//创建一个对象obj,用来接收订阅者的消息类型,以及content的回调函数
this.obj = {
// 'tianli':[function content(){},function content(){},...]
}
this.subscribe = function (message, accept) {
//该对象(obj)用来保存消息类型以及接受消息的函数
//先进行判断obj中的数组是否为空,为空,让他的值等于它本身,不为空,给它赋值为空
if(this.obj[message]){
this.obj[message].push(accept)
}
else{
this.obj[message]=[accept]
}
// this.obj[message]=this.obj[message] ? this.obj[message] : []
// //往数组中添加数据
// this.obj[message].push(accept)
}
//创建一个发布者函数
this.emit = function (message,content) {
//将保存的消息类型进行遍历
if(this.obj[message]){
this.obj[message].forEach((item)=>{
item(content)
})
}
}
}
//将这个函数暴露出来,这样我们就可以调用它;
window.observe = observe
})()
//创建一个实例对象
var o = new observe
//订阅消息者与发布者是多对一的关系,发布者发布一条消息,可能有多个订阅者接收
//订阅消息,可以有多个接收者
//subscribe的第二个参数是用来接收消息内容的
o.subscribe('天理', function (content) {
console.log('天理:' + content);
})
o.subscribe('天理', function (content) {
console.log('天理:' + content);
})
o.subscribe('天理', function (content) {
console.log('天理:' + content);
})
o.subscribe('钟离', function (content) {
console.log('钟离:' + content);
})
// console.log(o);xioan
//发布消息
o.emit('天理','不买桂花不喝酒')
o.emit('钟离','天动万象,天理尝蛆!')
发布订阅模式, 又称"观察者模式"
概念: 发布者
概念: 订阅者
关系: 发布者和订阅者是 一对多的关系
最后
以上就是腼腆可乐为你收集整理的javascript中的设计模式&发布订阅模式的全部内容,希望文章能够帮你解决javascript中的设计模式&发布订阅模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复