美文网首页
设计模式

设计模式

作者: 我的钱包瘪瘪的 | 来源:发表于2019-12-12 11:01 被阅读0次

设计模式

1. 工具

UML类图(统一建模语言)

  1. 类图是UML图中的一种, 推荐Processon, 在线建模工具

  2. 类图关系: 设计模式中主要用到 泛化(继承)关联(引用)

  3. UML类图说明: 三行结构

    类图结构说明.jpg
  1. 例子
        // 类, 相对于如下的, UML类图
        // JS中没有protected/private, 故而UML类图更多是`+`
        class People {
            constructor(name, house) {
                this.name = name
                this.house = house
            }
            saySomething () {}
        }
      //  A, B是泛化(继承)
        class A extends People {
              constructor(name) {
                  super(name)
              }
              saySomething () {
                  console.log('I am A')
              }
          }
          class B extends People {
                constructor(name) {
                    super(name)
                }
                saySomething () {
                    console.log('I am B')
                }
            }
          // House是关联关系
           class House {
                constructor(city) {
                    this.city = city
                }
                showCity() { }
            }
        } 
    
    uml关联图.jpg

2. 五大设计原则(SOLID)

  1. 概念:

        S - 单一职责原则: 一个程序只做一件事
        
        O - 开放封闭原则: 对拓展开放, 对修改封闭(支持拓展, 不支持修改源代码影响原有功能)
        
        L - 李氏置换原则: 子类能覆盖父类, 父类能出现的地方子类就能出现(React.component), js较少
        
        I - 接口独立原则: 保持接口单一独立, 避免出现"胖接口"(java等语言实现接口, js较少)
        
        D - 依赖导致原则: 依赖抽象而不依赖具体(js较少)
    
  2. Promise示例

        const loadImg(src) {
            return new Promise((resolve, reject) => {
                let img = document.createElement('img')
                img.onload = () => {
                    resolve(img)
                }
                img.onerror = () => {
                    reject('图片加载失败')
                }
                img.src = src
            })
        }
        
        let src = `www.baodu.com`
        let result = loadImg(src)
        
        // 单一原则, 每个then只做一件事
        // 开放封闭原则, 不修改原有的, 当需要拓展时, 直接再then即可
        result.then(img => {
            console.log(`width: ${img.width}`)
            return img
        }).then(img => {
            // ....
        }).catch(err => {
            console.log(err)
        })
    

3. 23种设计模式

  1. 概括

        创建型: 
            工厂模式 (工厂方法模式, 抽象工厂模式, 建造者模式), 
            单例模式
            原型模式 
        
        组合型
            适配器模式
            装饰器模式
            代理模式
            外观模式
            桥接模式
            组合模式
            亨元模式
        
        行为型
            观察者模式
            迭代器模式
            策略模式
            模板方法模式
            职责连模式
            命令模式
            
            备忘录模式
            状态模式
            访问者模式
            中介者模式
            解释权模式
    

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

      本文标题:设计模式

      本文链接:https://www.haomeiwen.com/subject/quwzgctx.html