【编程范式|青训营笔记】

71 阅读2分钟

编程范式

形成过程:机器语言>>汇编语言>>高级语言

c/c++:中级语言>>过程语言代表

1.对地址,字节,位直接操作

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

3.功能齐全,数据结构和控制逻辑多样化

4.可移植能力强

c++增加了对类的操作lisp:函数式语言的代表
js:多范式>>过程性,面向对象,函数式,响应式

程序语言特性:是否副作用,操作执行顺序,代码管理,语法和词法

又可分为

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

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

面向过程的问题:1.数据和算法关联弱 2.不利于代码的修改和扩充 3.不利于代码的重用
面向对象的优点:封装,继承,多态,依赖注入

1.封装:关联数据和算法 2.继承:无需重写的情况下进行功能扩充 3.多态:不同结构可以进行接口共享>>函数复用 4.依赖注入:去除代码耦合度(函数使用时需要外部数据写入)

*面向对象的五大原则:

单一职责:用法应当单一

开放封闭:扩展性开放,更改性封闭

里式替换:对继承而言的,继承是为了实现代码重用,也就是为了共享方法,那么共享的父类方法就应该保持不变,不能被子类重新定义。子类只能通过新添加方法来扩展功能

依赖倒置:设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖其抽象

接口分离:一个类要给多个客户使用,那么可以为每个客户创建一个接口,然后这个类实现所有的接口;而不要只创建一个接口,其中包含所有客户类需要的方法,然后这个类实现这个接口

面向对象的问题:总是附带所有它所要的隐含环境

函数式编程:无副作用,闭包,高阶函数

聚合转发>>代码更加简洁

优点:可 缓(存),可(移)植,可(测试),(可推)理,可并(行)