【重温JS】巩固基础 - 设计模式: 代码设计经验的总结

229 阅读4分钟

这是我参与8月更文挑战的第29天,活动详情查看:8月更文挑战

☆☆☆ 今天来具体了解一下几种设计模式: (单例模式 工厂模式 观察者模式) ☆☆☆

可作为初学者的学习路线, 可参考一下, 学习进度也不是特别赶! 持续更新中

结合自己的理解, 用白话文简单又全面概括 JavaScript 学习过程中的基础知识点, 方便加深理解!

开始今天的学习吧!! 查缺补漏! '打牢地基才能筑高楼'! 加油! 认真对待!!

梳理昨日知识点:

( 继承的几种方式 & 闭包 & 单例模式 )

  1. 继承 : 子类继承父类所有的属性和功能
  2. 继承方式 2.1 通过改变父类的执行环境 2.2 通过 callapply 继承 2.3 原型继承 2.4 混合继承 2.5 ES6 的继承: extends
  3. ES6 的构造函数
  4. 闭包 在一个函数体内部能够访问另外一个函数的私有变量
  5. 设计模式之单例模式初见面:

1、什么是设计模式?

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

  • 单例模式
  • 工厂模式
  • 观察者模式
  • 代理模式    
  • 策略模式    
  • 组合模式等等

MV* ---> MVCMVVM 不属于 23 种设计模式

使用设计模式是为了

  • 可重用代码、
  • 让代码更容易被他人理解、
  • 保证代码可靠性。  

设计模式就是一种 编程规范   架构层面的

2、设计模式之单例模式

单例:对象只能实例化(创建)一次就叫单例

单例模式:字面量的对象声明{},其实在设计模式中可以看作是一种单例模式,所谓单例模式,就是永远保持对象的一个实例。

3、设计模式之工厂模式

让对象的调用者和对象创建过程分离,当对象调用者需要对象时,直接向工厂请求即可。

从而避免了对象的调用者与对象的实现类似编码方式耦合,以提高系统的可维护性、可扩展性。

4、设计模式之观察者模式

观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。

在一个构造函数中 通知另外一个构造函数 要实现的方法

举例理解 观察者模式:

eg: 小孩哭了  ----   饿了   开始喂奶了

小孩哭了   通知父亲该给孩子喂奶了

function Child(dad, mum) {
  this.dad = dad
  this.mum = mum
  this.cry = function () {
    //观察者模式
    // 小孩哭了  通知父亲该给孩子喂奶了
    this.dad.weinai()
  }

  setTimeout(
    function () {
      this.cry()
    }.bind(this),
    Math.random() * 5000 + 300
  )
}

function Dad() {
  this.weinai = function () {
    alert('给孩子冲奶粉~~~')
  }
}

预告: 加油, 追梦人

学习就是一个不断进行的过程, 坚持下去, 定有收获!

日积月累, 巩固基础, 早进大厂!

坚持很不容易, 坚持下来更不容易, 你真棒!

Calm Down & Carry On!


更多阅读:

前文更新回顾

【重学 JS】每天学习巩固基础系列文章:

【重温 JS】继承的几种方式 & 闭包 & 单例模式【重温 JS】原型和原型链 | 工厂模式 | 构造函数【重温 JS】巩固基础-面向对象/面向过程/类和对象

【重温 JS】巩固基础之-ajax 原理/缓存/接口【重温 JS】巩固基础 day23-前端也要了解一些数据库

【day1】js 初始

【day2】各种运算符【day3】数据类型【day4】循环结构 & 条件语句【day5】函数(重点)【day6】作用域 & 事件

【day7】对象 & 数组方法总结【day8】字符串方法 & 部分排序

【day9】Math 对象 & 封装函数【day10】BOM-浏览器对象模型

【day11】DOM-文档对象模型

【day12】Event 事件对象初识(一)【day13】Event 事件对象初识(二)

【day14】事件委托 & 拖拽原理

【day15】拖拽实现 & 正则初识【day16】正则具体方法

【day17】cookie【day18】ES6

【day19】Js 运动函数的封装

【day21】前三周学习复习

【day22】服务器端和客户端

更多期待在路上...任重而道远==-..-==