编程范式|青训营笔记

110 阅读4分钟

编程语言

机器语言

第一代计算机(1940年代末至1950年代初):第一代计算机使用的是机器语言,这种语言是二进制的,非常难以阅读和编写

汇编语言

汇编语言(1950年代中期):为了使程序员能够更容易地编写代码,汇编语言被发明了出来。汇编语言是一种更高级别的机器语言,使用助记符来代替二进制代码,使程序员能够更容易地编写和阅读代码

高级语言

高级语言是一种人类易于理解和使用的计算机语言。它使用自然语言的形式来描述问题,而不是使用机器语言或汇编语言。高级语言通常具有较高的可读性和可维护性,使程序员能够更容易地编写和修改代码。

  • 面向对象代表:C++
  • 函数式代表:lisp
  • 多范式代表:javascript

image.png

编程范式

  1. 命令式
  • 面向过程(以过程为中心)
  • 面向对象(以对象为中心)
  1. 声明式
  • 函数式(以函数为中心)
  • 响应式(以数据流为中心)

过程式

自顶向下

image.png

结构化编程

左边是不对的,右边是正确的 image.png

面向对象

封装

将数据和行为封装在一个对象中,通过访问控制来保护对象的数据和行为,防止外部对象直接访问和修改

image.png

继承

继承原有的功能,再补充新的功能

image.png

多态

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

image.png

这部分内容和JAVA中的差不多,不多赘述

面向对象编程_五大原则

  • 单一职责原则SRP(Single Responsibility Principle)
  • 开放封闭原则OCP(Open-Close Principle)
  • 里式替换原则LSP(the Liskov Substitution Principle LSP)
  • 依赖倒置原则DIP(the Dependency Inversion Principle DIP)
  • 接口分离原则ISP(the Interface Segregation Principle ISP)

函数式编程

image.png

优势

  • 可缓存
  • 可移植
  • 可测试
  • 可推理
  • 可并行

Currying

image.png

image.png

image.png

Composition

image.png

image.png

响应式编程

观察者模式

观察者模式(Observer Pattern)是一种设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有观察者都会收到通知并自动更新。

  • 松耦合:观察者模式将主题对象和观察者对象之间解耦,使得它们可以独立地变化和扩展。
  • 可复用性:由于观察者对象可以动态地添加和删除,因此可以在不修改主题对象的情况下增加新的观察者对象,提高了代码的可复用性。
  • 扩展性:在观察者模式中,可以灵活地添加和删除观察者对象,因此可以方便地扩展和修改系统的功能。 image.png

迭代器模式

迭代器模式(Iterator Pattern)是一种设计模式,它提供了一种顺序访问聚合对象中的元素,而不需要暴露聚合对象的内部表示。迭代器模式可以将遍历聚合对象的过程从聚合对象中分离出来,从而可以简化聚合对象的实现和遍历算法的实现。

  • 简化聚合对象的实现:由于迭代器模式将遍历聚合对象的过程从聚合对象中分离出来,因此可以简化聚合对象的实现,使其只需要关注自己的核心业务逻辑。
  • 提高聚合对象的访问效率:在迭代器模式中,迭代器对象可以提供不同的遍历算法,从而可以针对不同的应用场景进行优化,提高聚合对象的访问效率。
  • 提高代码的可复用性:由于迭代器模式将遍历算法从聚合对象中分离出来,因此可以方便地重用遍历算法,提高代码的可复用性。

总结

  • 牢记编程原则
  • 多多实践
  • 面向过程和面向对象各有千秋,写代码时需要思维转换 image.png