python的面向对象和面向过程(意义和区别)

面向过程

  1. 侧重于怎么做
    1.把完成某一个需求的 所有步骤 从头到尾 逐步实现
    2.根据开发要求,将某些功能独立的代码封装成一个又一个函数
    3.最后完成的代码,就是顺序的调用不同的函数
  2. 特点
    1.注重步骤和过程,不注重职责分工
    2.如果需求复杂,代码变得非常复杂
    3.开发复杂的项目的时候,没有固定的套路,开发难度很大

面向过程—>侧重于怎么做
面向对象—>测中于谁来做

面向对象

  1. 侧重于谁来做
    相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法
    1.在完成某一个需求前,首先确定职责–要做的事(方法)
    2.根据职责确定不同的对象,在对象内部封装不同的方法(多个)
    3.最后完成代码,就是顺序的让不同的对象调用不同的方法

  2. 特点:
    1.注重对象和职责,不同的对象承担不同的职责
    2.更加适合对复杂的需求变化,是专门应对复杂项目的开发,提供固定的套路
    3.需要在面向过程的基础上,再学习一些面向对象的语法

  3. 面向对象有两个核心的概念
    :是一类具有相同特征或行为的事物的一个统称
    对象:由类创建出来的一个具体的存在
    类和对象的关系: ------->先有类再有对象
    类是模板 对象是根据这个模板创建出来的
    类只需要有一个 对象可以有多个

类: 属性(这一类事务的共同信息) 和 方法(你能完成的动作)

  1. 类名:这类事物的名字(大驼峰命名法)

    大驼峰命名法:
        1.每个单词的首字母大写
        2.单词与单词之间没有下划线
    
  2. 属性:这个类创建出来的对象有什么特征

  3. 方法:这个类创建出来的对象有什么行为

类名的确定
名词提炼法分析整个业务流程,出现的名词,通常就是找到的类

属性和方法的确定
对 对象的特征描述,通常可以定义成属性
对象具有的行为(动词),通常可以定义为方法
提示:需求中没有涉及的属性或方法在设计类时,不需要考虑

区别

面向过程是
分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了
面向对象是
把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为
可以拿生活中的实例来理解面向过程与面向对象,例如五子棋

面向过程的设计思路就是: 首先分析问题的步骤:
1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果、
把上面每个步骤用不同的方法来实现

面向对象的设计思路就是:
整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上`面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定

可以明显地看出
面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一 。

发布了103 篇原创文章 · 获赞 1 · 访问量 943

猜你喜欢

转载自blog.csdn.net/qq_45652989/article/details/104277476
今日推荐