python篇1.12---面向对象的程序设计

面对过程的程序设计的核心是 过程(流水线式思维),过程即解决问题的步骤,面向过程的是设计就好比进行设计好一条流水线,考虑周全,什么时候处理什么东西。

优点:极大的降低了程序的复杂度

缺点:一套流水线或者流程就是 用来解决一个问题,生产汽水的流水线无法生产汽车,即便能,也得是大改,改一个组件,牵一发动全身。

应用场景:一旦完成基本很少改变的场景,著名的例子有Linux,git,以及Apache HTTP Server等。



面向对象的程序设计的核心是  对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为 对象,不存在的也可以创造出来。面向对象的程序设计好比如来设计西游记,如来要解决的问题是吧经书传给东土大唐,如来想了解这个问题需要四个人:唐僧,沙和尚,猪八戒,孙悟空,每个人都有各自的特征和技能(这就是对象的概念,特征和技能  分别对应对象的  数据属性和方法属性),然而这并不好玩,于是如来有安排了一群妖魔鬼怪,为了防止师徒四人在取经路上被搞死,又安排了一群神仙保驾护航,这些都是对象。然后取经开始,师徒四人与妖魔鬼怪神仙交互着直到最后取到真经。如来不会管石头四人按照什么流程去取。

优点:解决了程序的扩展性。对某一个对象修改,会立刻反应到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。

缺点:可控性差,无法像面向过程的程序设计流水线的可以很精准的预测问题的处理流程和结果,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。于是我们经常看到一个游戏人某一参数的修改极有可能导致阴霸的技能出现,一刀砍死3个人,这个游戏就失去平衡。

应有场景:需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业软件,游戏等都是面向对象的程序设计大显身手的好地方。



面向对象的程序设计并不是全部。对于软件质量来说,面向对象的程序设计只是用来解决扩展性

时间: 2024-12-22 06:57:24

python篇1.12---面向对象的程序设计的相关文章

python篇1.12.2---继承,多态与多态性,封装

1.什么是继承 继承是一种创建 新的类的 方式. 在python中,新的类可继承自一个或多个父类,原始的类称为 基类或超类,新建的类 称为 派生类或子类. class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass pass class SubClass2(ParentClass1,ParentClass

第十篇 面向对象的程序设计

第十篇 面向对象的程序设计 阅读目录 一 面向对象的程序设计的由来 二 什么是面向对象的程序设计及为什么要有它 三 类和对象 3.1 什么是对象,什么是类 3.2 类相关知识 3.3 对象相关知识 3.4 对象之间的交互 3.5 类名称空间与对象/实例名称空间 3.6 小结 四 继承与派生 4.1 什么是继承 4.2 继承与抽象(先抽象再继承) 4.3 继承与重用性 4.4 组合与重用性 4.5 接口与归一化设计 4.6 抽象类 4.7 继承实现的原理(继承顺序) 4.8 子类中调用父类方法 五

Python开发【第七篇】:面向对象

Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 ? 1 2 3 4 5 6 class Foo(object):     pass obj = Foo() isinstance(obj, Foo) 二.issubclass(sub, super) 检查sub类是否是 super 类的派生类 ? 1 2 3 4 5 6 7 cla

Python之路【第五篇】:面向对象和相关

Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 1 2 3 4 5 6 class Foo(object):     pass obj = Foo() isinstance(obj, Foo) 二.issubclass(sub, super) 检查sub类是否是 super 类的派生类 1 2 3 4 5 6 7 class F

python基础----面向对象的程序设计

面向对象的软件开发有如下几个阶段: 1.面向对象分析(object oriented analysis ,OOA) 2 面向对象设计(object oriented design,OOD) 3 面向对象编程(object oriented programming,OOP) 4 面向对象测试(object oriented test,OOT) 5 面向对象维护(object oriendted soft maintenance,OOSM) 1 #对象:学校----->归类 2 #共有的特征:商标为

图解Python 【第五篇】:面向对象-类-初级基础篇

由于类的内容比较多,分为类-初级基础篇和类-进阶篇 类的内容总览图: 本节内容一览图: 今天只讲类的基础的面向对象的特性 前言总结介绍: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个"函数"供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数,对象是一个类的实例 实例(instance):一个对象的实例化实现. 标识(identity):每个对象的实例都需要一个可

Python之路【第五篇】:面向对象及相关

面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) 二.issubclass(sub, super) 检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar

python之面向对象的程序设计

第一:程序设计思想与发展历程(了解) 1940年以前:面向机器编程最早的是采用机器语言编程,也就是直接使用二进制码来表示机器能够识别的指令和数据.优点:机器语言由机器直接执行,速度快缺点:写起来非常困难,并且不容易修改 汇编语言:用助记符号代替机器指令的操作码,用地址符号或者标号代替指令或操作数的地址优点:比机器语言的二进制码编写方便些缺点:汇编语言本质上还是一种面向机器的语言,编写困难,易出错 脱离机器后:面向过程编程面向过程的结构化程序设计强调功能的抽象和程序的模块化, 它将解决问题的过程看

Python基础篇【第十三篇】:面向对象

面向对象编程简称OOP(OOP,object-oriented programming)是一种程序设计思想,OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向对象设计简称OOD(OOD,object-oriented design)OOD仅意味着来创建你采用面向对象方式架构来创建系统. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的

Python进阶---面向对象的程序设计思想(一)

thon的面向对象 一.面向过程与面向对象的对比 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核