听飞狐聊JavaScript设计模式系列05

  • A+
所属分类:JavaScript

本回内容介绍


上一回聊到JS的类的模拟,继承,分析了nodejs,extjs,jquery,underscore的继承源码。

介一回,偶们来聊一下在JS中模拟接口,掺元类,装饰者模式,有些盆友可能用过ES6或者TypeScript的,知道在ES6里已经有interface,在es5中呢,只能靠模拟了,来吧,开始咯~

1. 接口模式


接口模式,主要是模拟java接口检测函数,确保接口的实现类必须实现接口中的方法:

这就是一个接口的模拟了,参考JavaScript设计模式上的例子,做了些修改,把一些不好理解的地方都详细的分析了,应该感觉还好吧。如果感觉吃力的话,可能是对接口的概念不是很了解,没关系,后面聊其他设计模式的时候,会常用到接口。这里咱再升华一下,在接口模式的基础上再写点内容,聊聊装饰者模式。

注:这里投抛异常的英文句子都是我自己写的,英文不好,如果有单词,语法错误,请见谅!

2. 装饰者模式


装饰者模式,给对象动态添加职责的方式称为装饰者(decorator)模式。

这里我们接着接口的例子来,上面的代码就不复制了,这里接着写,继续把大卫给玩儿坏。

这个例子应该很好理解吧,(注:这个代码是接着上边儿接口例子的代码噢),后面我们还会用到装饰者模式做一些复杂的例子。

先装个逼,再继续,最近没啥钟汉良的新戏,只好看他的老戏《天涯明月刀》,以前吴岱融版本的《边城浪子》也好看,都是经典的傅红雪。

3. 掺元类


掺元类:也是继承的一种,这里就简单的模拟一下c++的多亲继承,帅狐show time,just do it:

难度不大吧,当然这里只是简单的实现,代码写得不严谨。

在网上看到有JSer说:"Backbone的源码广泛使用掺元类",以前玩过这个框架,但在工作项目中没有用过Backbone(这是一个依赖jquery,underscore.js的MVC框架),看到这哥们儿说的话后,就好奇想看看源码,我们就简单的分析下backbone的extend。

4. backbone之extend源码浅析


backbone的extend浅析源码(官网源码地址:http://backbonejs.org/backbone.js
首先backbone是依赖与underscore.js的,而underscore.js的_.extend在上一回我们已经聊过了,来吧,直接看backbone的extend源码:

这个就是backbone的继承实现了,难解的地方我都写了注释,如果有分析错的地方,请指正。如果感觉晕菜的话,可以跳过,。

话说最近钟汉良,蒋劲夫领衔的《我要上学啦》真人秀第一季over了,从第一期追剧追到最后,真是好玩吖,主题曲也励志:如果能,重返17岁,插上翅膀你敢不敢高飞...

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: