封装的目的
- 定义变量不会污染外部
- 能够作为一个模块调用
-
什么是好的封装
变量外部不可见
- 调用接口使用
-
封装对象时的设计模式
创建一个对象的模式
1、工厂模式-大批量的建造类似的内容
目的: 方便我们大量创建对象
应用场景:当某一个对象需要经常创建的时候。比如分页中的每一页都是一个对象, 弹框
基本结构:function Factory(type){
switch(type){
case "type1":
return new Type1();
case "type2":
return new Type2();
case "type3":
return new Type3();
}
}
工厂模式就是写一个方法,只需要调用这个方法,就能拿到你要的对象
2、建造者模式-精细化构建思想
目的:需要组合出一个全局对象
应用场景: 当要创建单个、庞大的组合对象时。比如:轮播图
基本结构: ```javascript //模块1 function Mode1(){
} //模块2 function Mode2(){
} //最终的使用类 function Final(){ this.mode1 = new Mode1(); this.mode2 = new Mode2(); }
- 把一个负责的各个部分拆分成独立的类,然后再在最终类里组合到一块,final为最终给出去的类
<a name="3OAeH"></a>
## 保障对象只有一个
<a name="AFYjx"></a>
### 1、单例模式
目的: 需要确保全局只有一个对象<br />应用场景: 为了避免重复新建,避免多个对象存在互相干扰<br />基本结构
```javascript
let Singeton = function(name){
this.name = name;
}
Singeton.getInstance = function(name){
if(this.instance){
return this.instance;
}
return this.instance = new Singeton(name);
}