一、面向对象的语言
java,c#,c++,让谁做事。而面向过程的语言,比如C语言,该怎么做。
JavaScript不是面向对象的语言,但是可以用JavaScript进行面向对象编程。
二、4大基本特性
抽象,封装,继承,多态。
三、7大设计原则
单一指责原则,开闭原则,里氏代换原则,依赖倒转原则,接口隔离原则,迪米特法则,合成复用原则。
四、设计模式
设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。
1、创建型模式
创建型设计模式是一类处理对象创建的设计模式,通过某种方式控制对象的创建来避免基本对象创建时可能导致设计上的问题或增加设计上的复杂度。
A、简单工厂模式
B、工厂模式
C、抽象工厂模式
D、单例模式(模块)
E、原型模式
F、创建者模式
2、结构型模式
结构型设计模式关注于如何将类或对象组合成更大、更复杂的结构,以简化设计。
A、组合模式
B、装饰者模式(组件)
C、外观模式
D、适配器模式
E、代理模式
F、享元模式
G、桥接模式
3、行为型模式
行为型设计模式用于不同对象之间职责划分或算法抽象,行为型设计模式不仅仅涉及类和对象,还涉及类或对象之间的交流模式并加以实现。
A、观察者模式(事件)
B、策略模式
C、状态模式
D、中介模式
E、模板方法(钩子)
F、命令模式
G、备忘录模式
H、访问者模式
I、解释器模式
J、迭代器模式
K、职责链模式
4、技巧型设计模式
主要来源于项目实践总结,通过一些特定技巧来解决组件的某些方面的问题。
5、架构型设计模式
架构型设计模式是一类框架结构,通过提供一些子系统,指定它们的职责,并将它们条理清晰地组织在一起,现在流行的前端框架都用了这种类型的设计模式。
A、同步模块模式
B、异步模块模式
C、Widget模式
D、MVC模式
E、MVP模式
F、MVVM模式
五、常用术语
命名空间,类,对象,属性,方法,构造函数。
六、举个例子
在JavaScript中,命名空间只是另一个包含方法,属性,对象的对象。使用命名空间也最大程度地减少应用程序的名称冲突的可能性。
// 全局命名空间 var validForm = validForm || {}; // 子命名空间 validForm.attrfn = {}; // 给方法和属性创建一个叫做validForm.attrfn的容器 validForm.attrfn = { username: "", //定义用户名的正则验证 password: "", //定义密码的正则验证 validateName: function(name){ }, validatePassword: function(pwd){ } }