设计模式之观察者模式(订阅模式),jquery实现

来源:互联网 发布:python 冒号的作用 编辑:程序博客网 时间:2024/06/04 19:40
<!doctype html><html lang="en"> <head>  <meta charset="UTF-8">  <script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>  <script type="text/javascript">  $(function(){//利用jquery带的on,off,trigger方法实现观察者模式(又名订阅者模式)var observice = $({});//生成订阅初始jquery对象observice.customers = [$({name:"Amy"})];//注册订阅对象observice.addCustomer = function(ob){//允许新增新的订阅对象observice.customers.push($(ob));}observice.publiced = function(name,message){//订阅消息发布接口$.each(observice.customers,function(i,ele){ele.trigger(name,message);})}observice.subscribe = function(name){//为订阅对象订阅消息类型$.each(observice.customers,function(i,ele){ele.on(name,function(e,message){console.log(message);alert(ele[0].name+'收到  '+name+' 订阅消息, '+'消息内容为: '+message.message);})})}observice.unsubscribe = function(name){//为订阅对象取消消息订阅$.each(observice.customers,function(i,ele){ele.off(name);})}//执行操作observice.addCustomer({name:"KDS"});observice.subscribe("s");observice.subscribe("a");observice.subscribe("篮球周刊");observice.unsubscribe("s");//observice.publiced("s");//observice.publiced("a");observice.publiced("篮球周刊",{'message':'奥多姆复婚,嫖娼挽回感情!'});  });    </script>  <title>观察者模式</title> </head> <body> </body></html>

0 0
原创粉丝点击