说明: 未完成。。。更新中。。。。javascript
1、javascipt设计模式分类java
设计模式分类有不少标准,最流行的三种以下设计模式
1) creational -- 主要关注对象建立app
Creational design patterns deal directly with object initialization procedures focusing on the creation of situation-specific objects. Without thinking about how objects are created, a level of complexity can be added to the design of an application. Creational design patterns work to solve this problem by adding a layer to the object creation process.ide
建立型设计模式直接处理对象的初始化程序,重点关注建立基于特定场景的对象。它不关注如何建立对象,其复杂性的层次直接加入到应用程序的设计中。建立型设计模式经过在对象建立过程上加上一层来解决问题。post
2) structural -- 主要关注对象的组合方法flex
Structural design patterns are ones that focus on easing the relationship between different components of an application. They help to provide stability by ensuring that if one part of the app changes, the entire thing doesn't need to as well.this
3) behavioral -- 主要关注对象间的通讯方式spa
Behavioral design patterns emphasize flexibility through the identification of common communication patterns between various objects.prototype
2、平常使用的javascript设计模式
2)The Revealing Module Pattern
var account = function(){ var balance = 0; var deposit = function(money){ balance + = money; console.log("balance after deposti: ",balance); sendMsg(); }; var withdraw = function(money){ balance -= money; console.log("balance after withdraw",balance); sendMsg(); }; //私有方法 var sendMsg = function(){ console.log("sending message!") }; //公共方法 -- send outside module return { deposit:deposit, withdraw: withdraw } }; var a1 = account(); a1.deposit(100); a1.withdraw(20); a1.sendMsg(); //could have a alert
var PersonSingleton =(function(){ var instantiated; function init(){ function myOtherMethod() { alert( 'my other method' ); } return{ name: 'Anonymous', work: function(){ console.log(this.name + "is working"); }, someOtherMethod: myOtherMethod } } return{ //handles the prevention of additional instantiations getInstance: function(){ if(!instantiated){ instantiated = init(); } return instantiated; } } })(); var p1 = PersonSingleton.getInstance(); p1.work(); //return Anonymouse var p2 = PersonSingleton.getInstance(); p2.work(); //return Anonymouse
参看: