葵花宝典读书笔记-为什么要面向对象

面向过程和计算机如影随形,从计算机诞生之日起,面向过程一直占主导地位。C语言、操作系统、协议栈、驱动系统、都是面向过程的代表。

为什么会有面向对象诞生并流行呢?面向过程是可以看作是流水线,那么流水线有个缺点:流水和原料是相对固定的,扩展起来很麻烦。比如啤酒生产线,操作的原来是啤酒原料,生产的步骤是生产啤酒的步骤,如果现在要生产醋,那么就得修改流水线上的设备和生产流程,或引进一条新的流水线。前面说过,面向过程设计解决了面向机器的复杂性问题,面向对象则解决的是扩展性和可维护性问题。

工业上,对生产线的扩展性要求并不高,更需要的是解决效率的问题,另外一条生产线一旦建成,少则几年,多则几十年的运行。因此,对扩展性要求并不高。但软件设计中,“唯一不变的就是改变”。需求总是在不断的变化着、不断的扩展着。那么就需要有方法提高软件的可扩展性和可维护性。这就是面向对象的核心。

原文地址:https://www.cnblogs.com/mysic/p/8448764.html

时间: 2024-11-10 13:12:15

葵花宝典读书笔记-为什么要面向对象的相关文章

葵花宝典读书笔记-面向对象

面向对象编程思想不再局限于计算机本质,更侧重于对现实世界的模拟.对现实世界模拟的思想,本质就是人的思想. 在面向过程中,有一个类似于中央控制器的角色统一调度.面向对象中,没有这样的角色,也不指定严格的操作顺序,而是设计了许多对象,指定这些对象需要完成的任务,以及这些对象如何对外界的刺激作出反应. 如果说面向过程像一条生产流水线,那么面向对象就像一个足球队.每个球员有自己的行为和自己的特长.没有那个人可以从比赛的开始,就可以规划每个球员的每一步走位.出脚.传球....而是只能指定每个球员的角色(前

葵花宝典读书笔记-面向对象的应用范围

1.能做什么? 面向对象的核心是"可扩展性".因此,经常变化的地方就是面向对象应用的地方. 软件系统中,经常变化的地方主要集中在客户需求部分,不变的一般都属于计算机系统的基础. 2.不能做什么? 从上图可以看到"可扩展性"只占软件质量属性中的一小部分,其他部分都是不面向对象可以解决的.因此明白了面向对象的特点,是应用面向对象的关键. 面向对象不是瑞士军刀,只是普通的锤子而已,不要尝试所有的问题都用面向对象的思想去解决. 原文地址:https://www.cnblog

葵花宝典读书笔记-面向对象的迷思

从语言层面的处理机制上讲,面向对象的方式肯定比面向过程的方式效率要低一些.所以,对性能要求高的,例如操作系统.驱动程序.网络设备程序都是由C语言编写的.(C语言虽然提供的编程模式是面向过程的,但是同样可以以面向对象的思想来写程序,只是它没有太多机制支持面向对象方式编写程序,不是很方便而已.) 很多人认为面向对象的效率会导致性能很差,经常用C语言和JAVA语言做比较来说明观点. 程序系统的运行效率更大的取决于设备的IO速度. CPU:每秒10亿次,性能是纳秒级 内存:每秒1000万次,每次请求时间

葵花宝典读书笔记-面向过程

面向过程是一种以"过程"作为中心的编程思想,"过程"就是"完成一件事的步骤".面向过程是一种"机械的思想",就像流水线一样,一个阶段衔接一个阶段,环环相扣.每个阶段都有自己的输入.处理.输出的步骤.运用面向过程方法时也要设计这样一条流水线:将程序划分为不同的阶段,设计好个个阶段如何衔接,定义好每个阶段要处理的数据. "程序=算法+数据结构" 这个总结正好契合机械化的特征.计算机本质上是一台机器,其核心CPU

葵花宝典读书笔记-类

一,类的定义 类是一组相似事物的统称 "一组"  在于多个,单个事物无法成为一个类."人"可以是一个类,但"我"就不是一个类. "相似" 比较像,但不完全相同.奥巴马,克林顿都是人类,但他们并不是相同的一个人. "统称" 具有概括性.奥巴马.克林顿可以统称为人.男人.动物.总统.但不会统称为奥巴马,因为奥巴马是具体的一个人. 二,如何划分类 角度决定看法.如何划分类,要看所站的角度. 你.我.猪.鱼.松树

葵花宝典读书笔记-对象

对象就是一个具体的类,就是一个类的实现. 对象是客观存在的,世界万物皆对象.人类为了归纳,总结,而把具有相似性的对象归类到一个类中.真正存在于软件运行过程中的是对象,而不是类. 软件对象产生的过程: 现实对象->现实类->软件类->软件对象 "软件类来源于现实类,但高于现实类"这句话的意思是.软件类不一定在现实中就存在对应的现实类.大多数软件类抽象于现实类,但他们之间并非一一对应,一个现实类可能对应多个软件来.例如:ATM是一个现实中的类,转化成软件类后就有"

葵花宝典读书笔记-接口

接口,英文interface,拆开看就是inter 和 face inter 有互相的意思,其含义强调两方的交互. face 面,对应的是点和线.很形象的体现了功能的多样性.可以看作是多个功能点的集合组成的一个功能面,通过它可以与多个功能点进行交互.但是功能点有很多,哪些才是属于一个面的?接口的定义是:接口是一组相关的交互功能点定义的集合.这就解释了如何去划分哪些功能点是一个面的. 接口强调的是双方的交互,如果只有一方,那么就不是交互了,也就不存在接口. 接口的功能点只是定义,不涉及具体的实现.

《JavaScript面向对象编程指南》读书笔记②

概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的知识点,以后再看也可当做拾遗之用! 内容 1.枚举属性用for-in循环显示. 2.当我们对对象的prorotype属性进行完全重写时,有可能会对对象constructor属性产生一定的负面影响. 3.uber--子对象访问父对象的方式Triangle.uber = TwoDShape.prototype 4

《C#图解教程》读书笔记之五:委托和事件

本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.委托初窥:一个拥有方法的对象 (1)本质:持有一个或多个方法的对象:委托和典型的对象不同,执行委托实际上是执行它所"持有"的方法.如果从C++的角度来理解委托,可以将其理解为一个类型安全的.面向对象的函数指针. (2)如何使用委托? ①声明委托类型(delegate关键字) ②使用该委托类型声明一个委托变量 ③为委托类型增加方法 ④调用委托执行方法 (3)委托的恒定性: 组合委托.为委托+=增加