编程范式 | 青训营笔记

88 阅读3分钟

一 课程介绍(简单了解

1.前端的主要编程为JavaScript

2.JavaScript做为一种融合了多种编程范式的语言,灵活性非常高,有自由度

3.前端开发人员需要根据场景在不同编程范式间自如切换

4.进一步需要创造领域特定语言抽象业务问题

课程收益

1.了解不同编程范式的起源和适用场景

2.掌握JavaScript在不同的编程范式特别是函数式编程范式的使用

3.掌握创建领域特定语言的相关工具和模式

二 编程语言

(为什么需要编程语言)

instructions

  • 机器语言和汇编语言

屏幕截图 2023-05-04 203037.png

屏幕截图 2023-05-04 202958.png

高级语言(顾名思义)

高级语言

C=A+B

汇编语言

LOAD A

ADD B

STORE C

机器语言

 12234234532450

 34523452345234
     
 67896789456768
     
 12234345435645
     

C/C++

C:

  • “中级语言”过程式语言代表

  • 可对位,字节,地址直接操作

  • 代码和数据分离倡导结构化编程

  • 功能齐全;数据类型和控制逻辑多样化

  • 可移植能力强

C++:

  • 面向对象语言代表

  • C with Classes

  • 继承

  • 权限控制

  • 虚函数

  • 多态

Lisp

Lisp:函数式语言代表 与机器无关 列表:代码即数据 闭包

JavaScript 基于原型和头等函数的多范式语言 过程式 面向对象 函数式 响应式

小总结

屏幕截图 2023-05-04 205036.png

编程范式 什么是编程范式

程序语言特性(是否允许副作用,操作的执行顺序,代码组织,状态管理,语法和词法)

常见编程范式

编程范式分为命令式与声明式

1.命令式是面向过程,面向对象

2.声明式是函数式,响应式

过程式编程

  • 自顶向下

  • 结构化编程

自顶向下

屏幕截图 2023-05-04 212820.png

结构化编程

屏幕截图 2023-05-04 212833.png

面向过程式编程有什么缺点? 为什么后面会出现面向对象

面向过程问题

数据与算法关联弱 不利于修改和扩充 不利于代码重用

面向对象编程

  1. 封装

  2. 继承

  3. 多态

  4. 依赖注入

封装(关联数据与算法)

屏幕截图 2023-05-04 211325.png

继承(无需重写的情况下进行功能扩充)

屏幕截图 2023-05-04 211339.png

多态(不同的结构可以进行接口共享,进而达到函数复用)

屏幕截图 2023-05-04 211513.png

依赖注入(去除代码耦合)

屏幕截图 2023-05-04 211636.png

面向对象编程_五大原则

单一职责原则SRP(Single Responsibility Principle)

开放封闭原则oCP(Open - Close Principle)

里式替换原则LSP(the Liskov Substitution Principle LSP)

依赖倒置原则DIP(the Dependency lnversion Principle DIP)

接口分离原则ISP(the Interface Segregation Principle ISP)

面向对象编程还有什么缺点 为什么我们推荐函数式编程

面向对象问题

明显对象编程语言的问题在于,它总是附带着所有它需要的隐含环境。你想要一根香蕉,但是得到的却是一个大猩猩拿着香蕉,而且还有整个丛林

总结

屏幕截图 2023-05-04 212459.png