python不属于面向对象的设计原则_Python的面向对象与面向编程有什么区别?

本文对比了面向过程和面向对象编程在五子棋游戏中的应用。面向过程编程关注解决问题的步骤,而面向对象编程注重角色和角色间的关系。在面向对象中,玩家和棋盘是两个主要角色,各自负责不同的功能,使得代码更易于维护和扩展。例如,添加悔棋功能在面向对象编程中只需修改棋盘角色,而在面向过程编程中可能涉及多个函数。面向对象编程在功能扩展时影响范围较小,提高了代码的可维护性。
摘要由CSDN通过智能技术生成

1bab94a035328853b68d064028b11baa.gif

面向对象(Object Oriented)是程序开发领域中的重要思想,这种思想模拟了人类认识客观世界的逻辑,是当前计算机软件工程学的主流方法;类是面向对象的实现手段。Python在设计之初就已经是一门面向对象语言,了解面向对象编程思想对于学习Python开发至关重要。

提到面向对象,自然会想到面向过程。面向过程编程的基本思想是:分析解决问题的步骤,使用函数实现步骤相应的功能,按照步骤的先后顺序依次调用函数。前面章节中所展示的程序都以面向过程的方式实现,面向过程只考虑如何解决当前问题,它着眼于问题本身。

面向对象编程的着眼之处在于角色以及角色之间的联系。使用面向对象编程思想解决问题时,开发人员首先会从问题之中提炼出问题涉及的角色,将不同角色各自的特征和关系进行封装,以角色为主体,通过描述角色的行为去描述解决问题的过程。

下面以五子棋游戏为例说明面向过程和面向对象编程的区别。

1.基于面向过程编程的问题分析

基于面向过程思想分析五子棋游戏,游戏开始后黑子一方先落棋,棋子落在棋盘后棋盘产生变化,棋盘更新并判断输赢:若本轮落棋的一方胜利则输出结果并结束游戏,否则白子一方落棋、棋盘更新、判断输赢,如此往复,直至分出胜负。结合以上分析,五子棋游戏的流程如图1所示。

dd8d47965ef25204ec7b8fa4e4e8ff6a.png

图1 五子棋游戏流程

2.基于面向对象编程的问题模拟

基于面向对象编程思想考虑问题时需首先分析问题中存在的角色。五子棋游戏中的角色分为两个:玩家和棋盘。不同的角色负责不同的功能,例如:

(1) 玩家角色负责控制棋子落下的位置;

(2) 棋盘角色负责保存棋盘状况、绘制画面、判断输赢。

角色之间互相独立,但相互协作,游戏的流程不再由单一的功能函数实现,而是通过调用与角色相关的方法来完成。

面向对象保证了功能的统一性,基于面向对象实现的代码更容易维护,比如,现在要加入悔棋的功能,如果使用面向过程开发,改动会涉及到游戏的整个流程,输入、判断、显示这一系列步骤都需要修改,这显然非常麻烦;但若使用面向对象开发,由于棋盘状况由棋盘角色保存,只需要为棋盘角色添加回溯功能即可。相较而言,在面向对象程序中功能扩充时改动波及的范围更小。

猜你喜欢:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值