编程范式 一 |青训营笔记

99 阅读3分钟

编程语言


作用:通过一系列的指令控制计算机,指令就是编程语言。编程语言相当于人机交互的桥梁。

机器语言

概念:能被计算机等设备直接识别的语言或指令代码
承载介质:最初是打孔纸带到线缆开关控制。
第一位程序员是ada(女)

汇编语言

出现原因:由于机器语言的不便于理解和记忆,为了解决这一问题出现了由英文字母及符号串代替机器语言的汇编语言;

高级语言

为了解决汇编语言过于依赖硬件使得程序可移植性差和不便于学习的缺点,由此高级语言诞生高级语言是一类语言的统称
常见的高级语言有:C、C++、Java、VB、C#、Python等。

  1. C:“中级语言”过程式语言代表;可对位,字节,地址直接操作;倡导结构化编程代码和数据分离;数据类型和控制逻辑多样化;移植能力强。
    C 语言发明人 Thompson/Ritchie
  2. C++:面向对象语言代表
    特点:出现了类,继承,权限控制,虚函数,多态等操作;
    发明人 Bjarne Stroustrup
  3. Lisp:函数式语言代表:与机器无关;列表代码就是数据,闭包的。
  4. JavaScript:基于原型和头等函数的多范式语言;有过程式,面向对象,函数式,响应式*

编程范式

通过程序语言的特性(是否允许副作用、操作的执行顺序、代码组织、状态管理、语法和词法)将编程范式分为命令式和声明式;其中命令式分为面向过程和面向对象;声明式分为函数式和响应式。

过程式(命令式)编程

自顶向下的设计和结构化编程思想;
自顶向下一个程序由许多模块组成,而模块中又包含了许多变量和函数;变量又由数据结构组成;函数下面也由许多的函数和语句组成。
结构化编程思想的提出代替了GoTo语句。
面向过程的缺点:数据与算法关联弱;不利于修改和扩充;代码重复利用性差。
面向对象编程来由:过程化范式要求程序员用按部就班的算法看待每个问题,并不是每个问题都适合这种过程化的思维方式,导致其他程序设计范式出现。

面向对象编程

基本概念:
封装(对信息进行隐藏):将数据和行为结合在一个包中,对使用者不展示执行过程;
:相似对象的集合。类中的对象可以接收相同的信息。(类包含和描述了具有共同数据元素(特性)和共同功能(行为)的一组对象;
继承:继承的思想就是允许在已存在类的基础上构建新的类。一个子类能够继承父类的所有成员,包括属性和方法。

继承的主要作用:通过实现继承完成代码重用;通过接口继承完成代码被重用。继承是一种规范的技巧,而不是一种实现的技巧。

多态:多态提供了“接口与实现分离”。多态不但能改善程序的组织架构及可读性,更利于开发出“可扩充”的程序。

继承是多态的基础。多态是继承的目的。

合理的运用基于类继承的多态、基于接口继承的多态和基于模版的多态,能增强程序的简洁性、灵活性、可维护性、可重用性和可扩展性。

面向对象原则

  1. 单一职责原则SRP
  2. 开放封闭原则OCP
  3. 里式替换原则LSP
  4. 依赖倒置原则DIP
  5. 接口分离原则ISP

缺点:总是附带所有它需要的隐含环境;