《面向对象是怎么工作的》读书笔记

面向对象为什么被认为很抽象,难理解

结构复杂

OOP增加了很多结构,基本的结构有类、实例、实例变量、方法、构造函数、继承、超类、子类、多态、包、异常、垃圾回收等。比如下面这句话:

类中定义了实例变量、构造函数和方法。在调用构造函数时,会创建实例,从而调用方法。通过继承,我们可以定义拥有超类所有性质的子类;通过多态,我们可以对所有子类以相同的方式来调用方法。

滥用比喻引发混乱

比如animal是父类,dog和cat是子类;人具有name的属性,给larry这个实例发出“请告诉我你的名字”,会得到“Larry”的回答。

使用比喻能留给人深刻的印象,但是OOP在实际编程中的便利性难以传达。

概念太抽象

万物皆对象,虽然很酷,但与现实世界的情形似是而非,因此需要我们拨云见日,领略真正的含义。

多态让消息的发送方法变得通用;继承对共同点和不同点进行系统的分类和整理

类、多态和继承被明确定义为能够提高软件的可维护性和可重用性的结构。类用于将变量和子程序汇总在一起,创建独立性高的构件;多态和继承用于消除重复代码,创建通用性强的构件。另外,实例能在运行时将实例变量在堆区展开。

OOP的由来

  • 纸带打孔

  • 机器语言

  • 汇编语言

  • 高级语言 fortran 1957年

  • 60年代后半期NATO会议提出软件危机

如何应对软件危机?

  • 结构化编程 戴克斯特拉提出,其基本思想是:为了编写出能够正确运行的程序,采用简单易懂的结构是非常重要的。具体方法就是废除程序中难以理解的GOTO语句,只是用三种基本结构:循序(按照顺序)、选择(if)、重复执行(for)

为什么要无GOTO?滥用GOTO语句导致控制流程像面条一样扭曲纠结在一起的状态,造成“面条式代码”。

  • 提高子程序的独立性
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2024 Larry Wang
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信