笔记标题 | 青训营笔记

72 阅读1分钟

程序语言特性主要分为: 1.是否允许副作用 2.操作的执行顺序 3.代码组织 4.状态管理 5.语法和词法

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

命令式体现为面向过程与面向对象;而声明式则为函数式与响应式

graph TD
程序 --> 模块
模块 --> 变量
模块 --> 函数
变量 --> 数据结构
函数 --> 函.数
函数 --> 语句

面向对象编程——特性

封装,继承,多态,依赖注入

面向对象编程——五大原则

单一职责原则SRP,开发封闭原则OCP,里式替换原则LSP,依赖倒置原则DIP,接口分离原则ISP

Pure Function:

1、相同的输入值时,需产生相同的输出
2、函数的输出和输入值以外的其他隐藏信息或状态无关,也和由I/O设备产生的外部输出无关
3、不能有语义上可观察的函数副作用,诸如“触发事件”,使输出设备输出,或更改输出值以外物件的内容等

Currying

一种处理多元函数的方法。它产生一系列连锁函数,其中每个函数固定部分参数,并返回一个新函数,用于传回其它剩余参数的功能

Composition

将多个简单的函数,组合成一个更复杂的函数的行为或机制。每个函数的执行结果,作为参数传递给下一个函数,最后一个函数的执行结果就是整个函数的结果。

然而面向过程也有相关问题:

1.数据与算法相关弱

2.不利于修改和扩充

3.不利于代码重用