第一部分包括JS语言的特点,接口,封装,继承,单体模式,方法的链式调用
一:灵活的JS
多种风格;弱类型;易变性:(利-动态修改 | 弊-不稳定,不确定性)
JS中一切皆是对象,函数是一等对象
二:接口(个人认为是对JS灵活性的利弊进行了平衡)
面向对象的第一设计原则:针对接口而不是实现编程
定义:接口提供了了一种用以说明一个对象应该具有哪些方法的手段
利:1,自我描述; 2,(类间)相互沟通
弊:1,降低了灵活性;2,影响性能;3,无法强制保证接口
接口的表示法:
1.注释
/*
interface Composite(){
function add(child);
function remove(child);
function getChild(index);
}
*/
2.属性检查
3.鸭式辨型模仿接口
注意:使用接口的难点在于判断是否有必要使用它!!!
三:对对象的内容数据表现形式和实现细节进行隐藏
方法:1.用命名规范区别私用成功 this._title
2.用闭包实现私用成员
3.高级用法
4.常量
封装之利:保护内容数据完整有效;弱化模块间的耦合;
封装之弊:很难进行单元测试,实现封闭的困难
四:继承
...
五:单体模式
一个对象就是一个单体! var Singleton = {};
划分命名空间
拥有私有成员
1.使用下划线
2.使用闭包
Mynamespace.Singleton = (function(){
var a;
return {
//....
}
})()
3.惰性实例化(将实例化推迟到需要使用的时候,称为惰性加载lazy loading)
4.分支
单体之利:组织代码,方法调试和维护
单体之弊:可能导致模块间强耦合
六:方法的链式调用
重点:返回值return this;