• JS 设计模式之设计原则与思想


    一、何为设计

    设计即按照一种思路或者标准来实现功能
    结合《UNIX/LINUX设计哲学》,设计可总结为:

    1. 小即是美
    2. 让每个程序只做好一件事
    3. 快速建立原型
    4. 舍弃高效率而取可移植性
    5. 采用纯文本来存储数据
    6. 充分利用软件的杠杆效应(复用,抽象)
    7. 使用 shell 脚本来提高杠杆效应和可移植性
    8. 避免强制性的用户界面
    9. 允许用户定制环境
    10. 尽量使操作系统内核小而轻量化
    11. 使用小写字母并尽量简短
    12. 沉默是金
    13. 各部分之和大于整体
    14. 寻求 90% 的解决方案

    二、SOLID 五大设计原则

    设计原则是设计模式的指导理论,它可以帮助我们规避不良的软件设计
    SOLID 指代的五个基本原则分别是:

    1、S 单一功能原则

    1. 一个类只负责一个功能领域中的相应职责
    2. 如果功能过于复杂就拆分,每个部分保持独立

    2、O 开放封闭原则

    1. 对扩展开放,对修改封闭
    2. 增加新需求时,扩展新代码,而非修改已有代码

    3、L 里式替换原则

    1. 子类能覆盖父类
    2. 父类能出现的地方子类就能出现
    3. JS 中使用较少(弱类型 & 继承使用较少)

    4、I 接口隔离原则

    1. 保持接口的单一独立,避免出现“胖接口”
    2. JS 中没有接口(Typescript除外), 使用较少

    5、D 依赖反转原则

    1. 面向接口编程,依赖于抽象而不依赖于具体
    2. 使用方法只关注接口而不关注具体类的实现

    在 JavaScript 设计模式中,主要用到的设计模式基本都围绕“单一功能”和“开放封闭”这两个原则来展开

    三、设计模式的核心思想—封装变化

    设计模式出现的背景,是软件设计的复杂度日益飙升,软件设计越来越复杂的“罪魁祸首”,就是变化

    举个例子,
    我们写一个业务,这个业务是一潭死水,初始版本是 1.0,100 年后还是 1.0,不接受任何迭代和优化,那么这个业务只要实现功能就行了,完全不需要考虑可维护性、可扩展性

    但实际开发中,不发生变化的代码可以说是不存在的
    我们能做的只有将这个变化造成的影响最小化 —— 将变与不变分离,确保变化的部分灵活、不变的部分稳定

    这个过程,就叫“封装变化”
    这样的代码,就是我们所谓的“健壮”的代码,它可以经得起变化的考验,而设计模式出现的意义,就是帮我们写出这样的代码

    四、 23 种设计模式

    无论是创建型、结构型还是行为型,这些具体的设计模式都是在用自己的方式去封装不同类型的变化

    创建型模式封装了创建对象过程中的变化,比如工厂模式,它做的事情就是将创建对象的过程抽离;
    结构型模式封装的是对象之间组合方式的变化,目的在于灵活地表达对象间的配合与依赖关系;
    而行为型模式则将是对象千变万化的行为进行抽离,确保我们能够更安全、更方便地对行为进行更改。

    封装变化,封装的正是软件中那些不稳定的要素,它是一种防患于未然的行为 —— 提前抽离了变化,就为后续的拓展提供了无限的可能性,如此,我们才能做到在变化到来的时候从容不迫。

  • 相关阅读:
    linux启动流程
    控制nginx并发链接数量和客户端请求nginx的速率
    MySQL修改密码
    nginx站点目录及文件URL访问控制
    nginx日志相关优化安全
    根据参数优化nginx的服务性能
    nginx基本安全优化
    nginx rewrite
    nginx location
    nginx访问日志(access_log)
  • 原文地址:https://www.cnblogs.com/Leophen/p/14803496.html
Copyright © 2020-2023  润新知