JavaScript学习Day27笔记

Day27笔记

一、什么是设计模式

什么是设计模式呢? 就是指对于类似的问题,我们可以用大致相同的思想、方法去解决之,而这种通用的思想、方法就是设计模式。换言之,就是用“套路”做事情

二、设计模式的特点

  • 是已经经过验证,可以复用的解决方案(解决某一类问题的方法)。
  • 是从生产和生活经验中,提炼出来的核心知识体系。

三、设计模式的分类

1.创建型设计模式

创建型设计模式专注于处理对象创建机制,适合给定情况的方式来创建对象

  • Constructor(构造器)
  • Factory(工厂)
  • Abstract(抽象)
  • Prototype(原型)
  • Singleton (单例)
  • Buider(生成器)

2.结构型设计模式

结构型模式与对象组合有关,通常可以用于找出在不同对象之间建立关系的简单方法

这种模式有助于确保子系统某一部分发生变化时,系统的整个结构不需要同时改变

  • Decorator(装饰者)
  • Facade(外观)
  • Flyweight(享元)
  • Proxy(代理)
  • Adapter (适配器)

3.行为设计模式

行为模式专注改善或简化系统中不同对象之间的通信

  • Iterator(迭代器)
  • Mediator(中介者)
  • Observer(观察者)
  • Visitor(访问者)

四、单例模式

什么是单例模式

一个类只能有一个实例,即使多次实例化该类,也只有一个实例对象,会产生覆盖,并且提供全局访问

单例模式的特点

  • 减少了全局变量的数值。
  • 代码模块化,便于维护,减少数据外泄的危险。
  • 只存在一个实例对象。
// 单体模式(创建一个类)。
var Singleton = function(name) {
    this.name = name;
}
Singleton.prototype.getName = function() {
    return this.name;
}
// 获取实例对象。
var getInstance = (function getInstance(name) {
    // 使用一个变量来判断该类是否被实例化。
    this.instance = null;
    if(!this.instance) {
        // 如果未被实例化的话,那么我们可以实例化一次。
        this.instance = new Singleton(name);
    }
    // 否则,直接返回已经被实例化的对象。
    return this.instance;
} () )
// 测试单体模式的实例
var a = getInstance('jack')
var b = getInstance('rose')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值