组件库项目中运用几种常见前端设计模式 | 青训营笔记

72 阅读4分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 1 天

前言

所有的设计模式只是套路,唯有设计原则是指导思想,我们想要能够真正的了解到设计模式的精髓,就要先了解设计原则(该篇先讲述设计原则)

在这次的组件库项目中运用到了观察者、单例、装饰器、原型模式

设计原则

1. 主要内容

SOLID 五大设计原则

Unix/Linux 设计哲学

介绍 23 种设计模式,以及前端常用的设计模式

2. 设计原则:先设计,后模式

1)感性和理性

感性:形象比喻就好比文科生(boss,客户),他们需要提出软件的各种需求,一些很美好的幻想的需求

理性:形象比喻就好比理科生(程序员,开发人员),他们就需要对感性需求,理性的判断,因为感性只提到了美好的幻想,并没有告诉你如何通过理性的开发去实现,只能开发人员自己去非常严谨梳理开发过程,每一步该如何去做

2)SOLID 五大设计原则

S 单一职责原则

O 开放封闭原则(重要)

  • 当我们要去新增功能的时候,不要在原有的底层代码进行新增,要自己扩展新的业务代码
  • 对扩展开放,对修改封闭

L 李氏置换原则

I 接口隔离原则

D 依赖倒置原则

A. 单一职责原则

每一个程序都做好一件事

功能太多了就要拆分

每个部分保持互相独立

B. 开放封闭原则

对扩展开放

对修改封闭

需求发生变化时,通过扩展来解决,而非改动

C. 李氏置换原则

子类能覆盖父类

父类出现的地方,子类也能出现

(前端应用较少)

D. 接口隔离原则

保持接口的单一独立

避免出现胖接口

(和单一职责原则类似)

E. 依赖倒置原则

面向接口编程

而非面向实例

image-20230108101413527

3)总结

设计模式是理性的,"讲道理" 的

SOLID 五大设计原则

重点理解 S 和 O

3. 《Unix/Linux 设计哲学》

1)大型系统设计

image-20230108102700731

2)设计准则 1/3

小即是美(简单即是美)

让每个程序只做一件事(单一职责原则)

快速建立原型

  • 不要指望一下子就推出一个特别满意的产品,完美全部都是一步一步迭代出来的

3)设计准则 2/3

舍弃高效率,而更关注可移植性和扩展性

  • 电脑速度会越来越快,不要考虑太多的什么极致的性能优化,那是十几年前,网页打开速度太慢,才会优化

采用纯文本方式(json)来存储数据(采用每个语言标准规范通用的存储格式)

充分利用软件的杠杆效应(软件复用,代码复用)

4)设计准则 3/3

避免强制性用户界面(把我们的数据和操作控制跟用户界面进行分离)

允许用户定制环境(考虑多环境,扩展性)

寻求 90% 的解决方案

  • 2/8 原则:学习了 JS 20% 的语法,在 80% 的功能中常用
  • 我们不需要满足 100% 的客户,满足 90% 的客户即可,剩下的 10% 舍弃他

4. 23 种设计模式

1)从设计到模式

设计,及设计原则,设计思路

模式,前辈们总结出来的固定套路,直接套用

1995年《设计模式:可复用面向对象软件的基础》23 种设计模式

  • 注意那个时候,还没有前端,所以 23 种一部分并不适用前端

2)设计的价值

从需求到设计,从设计到开发

  • 不要觉得设计没有用
    • 如果项目很简单很快就能做完,你说为啥要写设计,那既然很简单就能做完,那你设计也很快就能设计完,但你如果设计都设计不出来,那么开发起来一定很困难
    • 写技术方案设计,是一个非常非常好的技术检验方案

如何需要设计?

  • 一个大型项目设计完成后,比如你要开发一个模块,然后写了一个技术方案,然后大家一讨论,哎 你别写了,这个我之前写过,避免了二次开发重复功能

如何需要模式?

  • 套用前人经验,直接抄作业,这是社会不是学校不需要你创新开发,而且别人的作业都是经过了几十年的修正的

3)前端常用的设计模式

工厂模式

单例模式

观察者模式

迭代器模式

原型模式

装饰器模式

代理模式

4)总结

从设计到模式

23 种设计模式

前端常用设计模式

5. 内容回顾

S O L I D 五大设计原则

Unix / Linux 设计哲学

介绍 23 种设计模式,以及前端常用的设计模式