美文网首页
第二部分 从基础构建开始:编程范式——第三章 总览 ~第五章 面

第二部分 从基础构建开始:编程范式——第三章 总览 ~第五章 面

作者: 游标卡尺玩蛇 | 来源:发表于2019-12-29 01:59 被阅读0次

    引言

    1938年,图灵打下了计算机编程的地基。到如今,编程语言层出不穷。在另一方面,编程范式也从中孕育而出。

    今天,我们只有三种编程范式,未来也几乎不可能出现新的。

    正文

    第三章

    编程范式总览

    • 结构化编程
    • 面向对象编程
    • 函数式编程

    结构化编程起源于goto的滥用,无限制的goto会损害程序的结构。
    且所有的goto均被证明可用if else do while等关键字替代,因而废除goto,诞生了结构化编程

    面向对象,函数在类内运行,可以保证函数return后的值继续保存在类中,诞生了面向对象。

    函数式编程来源于数学的函数,是λ(lambda)演算的衍生物,其中最重要的思想是数据的不可变性

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

    这三种范式恰好对应了软件架构的三个重点

    • 功能性--结构化
    • 组件独立性--面向对象
    • 数据管理--函数式

    第四章

    结构化编程被发现的历史(略)
    大量的goto不易被拆分为独立,方便测试的模块,因而被废除。

    第五章

    面向对象编程

    几种对于面向对象的解释

    • 数据与函数的组合

    • 对真实世界的建模方式

    • 一些神秘的词语,封装,继承,多态
      面向对象的特性有他们三个,但他们并不是面向对象的真正含义

    • 封装

    • 继承

    • 多态

    封装

    我们将一组关联的数据和函数,画一个圈,圈起来。
    让圈外面的代码只能看到,想让他看到的部分

    一个实例,不面向对象的C 可以完美的做出封装。面向对象的C++,因为头文件声明的原因,反而封装的不彻底。

    继承

    继承在面向对象编程之前早已存在,但是面向对象编程更加便利

    多态

    面向对象封装了使用函数指针的危险性。

    从此可以方便的面向接口,一个抽象的概念体展开编程。

    控制反转

    不面向接口编程,是A调取B,则A依赖于B。

    面向接口编程,
    A调取B的抽象接口C,A依赖于C,
    B实现C,B也依赖于C,
    但是从此,D、E、F等都可以实现C,只要实现C,即可被A调用。
    那么将A、C封装在一起看作一体的新A,即可达成了(依赖倒置)控制反转,B依赖于新A。

    微信图片编辑_20191229014237.jpg

    面向对象就是以多态为手段,对源代码中的依赖关系进行控制的能力

    因为此,面向对象规避了互相依赖的复杂关系,使得各个模块真正做到独立部署,也产生了不同的组件,更在此基础上产生了软件的分层。

    相关文章

      网友评论

          本文标题:第二部分 从基础构建开始:编程范式——第三章 总览 ~第五章 面

          本文链接:https://www.haomeiwen.com/subject/eikeoctx.html