封装的目的

  • 定义变量不会污染外部
  • 能够作为一个模块调用
  • 遵循开闭原则

    什么是好的封装

  • 变量外部不可见

  • 调用接口使用
  • 流出扩展接口

    封装对象时的设计模式

    创建一个对象的模式

    1、工厂模式-大批量的建造类似的内容

    目的: 方便我们大量创建对象
    应用场景:当某一个对象需要经常创建的时候。比如分页中的每一页都是一个对象, 弹框
    基本结构:

    1. function Factory(type){
    2. switch(type){
    3. case "type1":
    4. return new Type1();
    5. case "type2":
    6. return new Type2();
    7. case "type3":
    8. return new Type3();
    9. }
    10. }
  • 工厂模式就是写一个方法,只需要调用这个方法,就能拿到你要的对象

    2、建造者模式-精细化构建思想

    目的:需要组合出一个全局对象
    应用场景: 当要创建单个、庞大的组合对象时。比如:轮播图
    基本结构: ```javascript //模块1 function Mode1(){

} //模块2 function Mode2(){

} //最终的使用类 function Final(){ this.mode1 = new Mode1(); this.mode2 = new Mode2(); }

  1. - 把一个负责的各个部分拆分成独立的类,然后再在最终类里组合到一块,final为最终给出去的类
  2. <a name="3OAeH"></a>
  3. ## 保障对象只有一个
  4. <a name="AFYjx"></a>
  5. ### 1、单例模式
  6. 目的: 需要确保全局只有一个对象<br />应用场景: 为了避免重复新建,避免多个对象存在互相干扰<br />基本结构
  7. ```javascript
  8. let Singeton = function(name){
  9. this.name = name;
  10. }
  11. Singeton.getInstance = function(name){
  12. if(this.instance){
  13. return this.instance;
  14. }
  15. return this.instance = new Singeton(name);
  16. }
  • 通过定义一个方法,使用时只允许通过此方法拿到存在内部的同一实例化对象

    应用实例