本文展示了JavaScript设计模式的元模式。分享给大家参考,如下:
通过两个例子的对比,突出了共享模式的特点:共享模式是一种提高性能(空间复杂度)的设计模式,可以避免大量非常相似的类的开销。
在第一个例子中,不使用享受模式,并且计算时间和空间使用。
要求是:有城市登记汽车
(1)汽车类别
/* * *制造商*车型*车主*车牌号*上次注册日期*/var car=功能(品牌、车型、年份、车主、标签、续订日期){this。make=makethis.model=modelthis.year=年份;this.owner=所有者;this.tag=tagthis.renewDate=renewDatethis . GetMake=function(){ return this . Make;}}(2)使用装饰模式-计算函数的时间消耗
//装饰工.计算function var simple profiler=function(compo net)耗时{this。componet=componetthis . action=function(method name){ var self=this;var method=compo net[method name];//如果是函数,则修饰if(方法类型==' function '){ var startdate=new date()。gettime();//开始时间方法。应用(自我。componet,参数);var endDate=new Date();//结束时间提醒(end date-start date);} }}(3)具体例子,目前需要注册的车辆有415万辆
var ca=new Array();函数AddCar(){ this . begin=function(){ for(var I=0;i 415万;I) {ca.push(新车(' BMW ',' BMW ',' 2017-10-18 ','',' gbmw88 ',' 2017-10-19 ');}}}新的简单探查器(新的Add Car())。动作(“开始”)第二个例子:使用享受模式
(1)汽车类别
/* * *制造商*车型*车主*车牌号*上次注册日期*/var car=功能(品牌、车型、年份){this。make=makethis.model=modelthis.year=年份;this . GetMake=function(){ return this . Make;}}(2)单一模式的简单工厂
//singleton pattern的简单工厂var mycarinfo=function () {this。createcar=函数(制造商、型号、年份、所有者、标签、续订日期){ var c=carinfactory(制造商、型号、年份);c['所有者']=所有者;c[' tag ']=tag;c[' RenewDate ']=RenewDate;返回c;} } var carInfoFactory=(function(){ var carInfo={ };返回函数(make,model,year){ if(car info[make model year]){ return car info[make model year];}else{ var newCar=new Car(品牌、型号、年份);carInfo[制造年款]=NewCar;归还新车;a } } })));(3)现有415万辆需要登记
var测试=new myCarInfo();var startDate=新日期()。getTime();var ca=new Array();for(var I=0;i 415万;I) {ca.push(test.createCar('BMW ',' BMW ',' 2017-10-18 ','',' gbmw88 ',' 2017-10-19 ')} var end date=new date();警报(结束日期-开始日期);从上面两个例子可以知道,第一个例子没有使用享受模式,比第二个例子消耗的时间少,但是空间多。
第一个场景说明了每次都会生成相同的实例
第二种情况:内部零件图(不变)外部状态图(变)
有关JavaScript的更多信息,请查看本网站的专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》和《JavaScript数学运算用法总结》
希望本文对JavaScript编程有所帮助。