Singleten-单例模式
3.桥接模式(Bridge)Factory-工厂模式
4.组合模式(Composite)Bridge-桥接模式
5.门面模式(Facade)Composite-组合模式
Facade-门面模式 Hello js!
Hello js1!
7.装饰者模式(Decorator)Adapter-适配器模式
8.享元模式(Flyweight)Decorator-装饰者模式
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)10.观察者模式(Observer)Proxy-代理模式 1. Singleton - 单例模式 2. Factory - 工厂模式 3. Bridge - 桥接模式 4. Composite - 组合模式 5. Facade - 门面模式 6. Adapter - 适配器模式 7. Decorator - 装饰者模式 8. Flyweight - 享元模式 9. Proxy - 代理模式
11.命令模式(Command)Observer-观察者模式
Command-命令模式