编程范式

Published 2021年12月10日 12:10 by james

TL;DR

  • 结构化编程是对程序控制权的直接转移的限制。
  • 面向对象编程是对程序控制权的间接转移的限制。
  • 函数式编程是对程序中赋值操作的限制。

一句话总结

  • 结构化编程对程序控制权的直接转移进行了限制和规范。
  • 面向对象编程对程序控制权的间接转移进行了限制和规范。
  • 函数式编程对程序中的赋值进行了限制和规范。

如你所见,我在介绍三个编程范式的时候,有意采用了上面这种格式,目的是凸显每个编程范式的实际含义——它们都从某一方面限制和规范了程序员的能力。没有一个范式是增加新能力的。也就是说,每个编程范式的目的都是设置限制。这些范式主要是为了告诉我们不能做什么,而不是可以做什么。

另外,我们应该认识到,这三个编程范式分别限制了goto语句函数指针赋值语句的使用。那么除此之外,还有什么可以去除的吗? 没有了。因此这三个编程范式可能是仅有的三个了——如果单论去除能力的编程范式的话。支撑这一结论的另外一个证据是,三个编程范式都是在1958年到1968年这10年间被提出来的,后续再也没有新的编程范式出现过。

编程范式与软件架构的关系

大家可能会问,这些编程范式的历史知识与软件架构有关系吗? 当然有,而且关系相当密切。譬如说:

  • 多态是我们跨越架构边界的手段,
  • 函数式编程是我们规范和限制数据存放位置与访问权限的手段,
  • 结构化编程则是各模块的算法实现基础。

这和软件架构的三大关注重点不谋而合: 功能性、组件独立性以及数据管理。

0 comments

There are no comments yet.

Add a new comment