博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript设计模式
阅读量:7092 次
发布时间:2019-06-28

本文共 3807 字,大约阅读时间需要 12 分钟。

下面代码在ie6&ie6+&chrome測试通过,code地址:
转载请注明出处:
1.单例模式(Singleton):
Singleten-单例模式
2.工厂模式(Factory)
Factory-工厂模式
3.桥接模式(Bridge)
Bridge-桥接模式
4.组合模式(Composite)
Composite-组合模式
5.门面模式(Facade)
Facade-门面模式

Hello js!

Hello js1!

6.适配器模式(Adapter)
Adapter-适配器模式
7.装饰者模式(Decorator)
Decorator-装饰者模式
8.享元模式(Flyweight)
Flyweight-享元模式

29:28; break; case 2: this.numDay = 31; break; case 3: this.numDay = 30; break; case 4: this.numDay = 31; break; case 5: this.numDay = 30; break; case 6: this.numDay = 31; break; case 7: this.numDay = 31; break; case 8: this.numDay = 30; break; case 9: this.numDay = 31; break; case 10: numDay = 30; break; case 11: this.numDay = 31; break; } } Month.prototype = { buildDom: function(){ this.element = document.createElement('div'); this.element.className = 'month'; for(var i = 0; i < this.numDay; i++){ this.element.appendChild(flyWeightDay.getDom(i+1)); } }, getDom: function(){ return this.element; } } return { Year:Year } })(); window.onload = function(){ var body = document.getElementsByTagName('body')[0]; new MyNamespace.calendar.Year(2004, body); } /****************************************************** * 非享元版:使用了几百个Day对象,占用内存非常大 ***************************************/ // var MyNamespace = window.MyNamespace || {}; // // 定义在calendar模块 // MyNamespace.calendar = (function(){ // function Year(year, parent) { // this.element; // this.parent = parent; // this.isLeapYear = !(year%400) || (!(year%4) && (year%100)); // this.months = []; // for(var i = 0; i < 12; i++){ // this.months.push(new Month(i, this.isLeapYear)); // } // this.buildDom(); // } // Year.prototype = { // buildDom: function(parent){ // this.element = document.createElement('div'); // this.element.className = 'year'; // for(var i = 0; i < this.months.length; i++){ // var month = this.months[i]; // month.buildDom(); // this.element.appendChild(month.getDom()); // } // this.parent.appendChild(this.element); // } // } // function Month(month, isLeapYear){ // this.days = []; // this.element; // var numDay; // switch(month){ // case 0: // numDay = 31; // break; // case 1: // numDay = isLeapYear?29:28; // break; // case 2: // numDay = 31; // break; // case 3: // numDay = 30; // break; // case 4: // numDay = 31; // break; // case 5: // numDay = 30; // break; // case 6: // numDay = 31; // break; // case 7: // numDay = 31; // break; // case 8: // numDay = 30; // break; // case 9: // numDay = 31; // break; // case 10: // numDay = 30; // break; // case 11: // numDay = 31; // break; // } // for(var i = 1; i <= numDay; i++){ // this.days.push(new Day(i)); // } // } // Month.prototype = { // buildDom: function(){ // this.element = document.createElement('div'); // this.element.className = 'month'; // for(var i = 0; i < this.days.length; i++){ // var day = this.days[i]; // day.buildDom(); // this.element.appendChild(day.getDom()); // } // }, // getDom: function(){ // return this.element; // } // } // function Day(num){ // this.num = num; // this.element; // } // Day.prototype = { // buildDom: function(){ // this.element = document.createElement('div'); // this.element.className = 'day'; // var text = document.createTextNode(this.num); // this.element.appendChild(text); // }, // getDom: function(){ // return this.element; // } // } // return { // Year:Year // } // })(); // window.onload = function(){ // var body = document.getElementsByTagName('body')[0]; // new MyNamespace.calendar.Year(2004, body); // } </script> </body> </html>

9.代理模式(Proxy)
Proxy-代理模式
1. Singleton - 单例模式
2. Factory - 工厂模式
3. Bridge - 桥接模式
4. Composite - 组合模式
5. Facade - 门面模式
6. Adapter - 适配器模式
7. Decorator - 装饰者模式
8. Flyweight - 享元模式
9. Proxy - 代理模式
10.观察者模式(Observer)
Observer-观察者模式
11.命令模式(Command)
Command-命令模式
你可能感兴趣的文章
span 换行与不换行
查看>>
js获取年、月、日、时、分、秒
查看>>
课程助理For Windows(预览版,正方教务系统学生查分工具)
查看>>
Java程序如何自动在线升级
查看>>
LibLinear(SVM包)使用说明之(三)实践
查看>>
John von Neumann和Ulam
查看>>
Type mismatch: cannot convert from MainFragment to Fragment 报错
查看>>
RS485中继器电路(转)
查看>>
控制台打印二叉树
查看>>
Android 5.x特性概览四
查看>>
【python】——小程序之电话薄
查看>>
Atitit.iso格式蓝光 BDMV 结构说明
查看>>
MySQL的create table as 与 like区别(转)
查看>>
Linux学习历程(持续更新整理中)
查看>>
Linux查看物理CPU个数、核数、逻辑CPU个数
查看>>
软件设计模式详解:OCP原则
查看>>
Apache服务器常规操作
查看>>
qt cef嵌入web
查看>>
Java程序员面试失败的5大原因
查看>>
过滤器(Filter)
查看>>