什么是面向对象程序设计方法:核心编程范式
什么是面向对象程序设计方法,是以对象作为程序基本单元,把数据和操作数据的函数封装在一起,依靠封装、继承、多态三大核心特性组织代码,你可以用来拆分复杂业务逻辑,降低后期代码维护成本;适合开发业务需求频繁变更、模块复用需求较高的大中型软件项目,不适用于简单脚本、一次性短代码这类仅需少量顺序执行语句的场景,这类场景选用面向过程写法,开发效率会明显更高。该方法会把现实事物抽象成类,类是模板,对象是模板实例,代码不再以执行步骤为核心,而是以实体之间的交互来驱动程序运行,在国内计算机等级考试二级Python科目中,该知识点属于必考模块,选择题和编程大题都会出现相关考察内容。
面向对象程序设计方法的三大核心特性
封装,是将对象内部的数据与方法打包隐藏,对外只开放预先定义好的访问接口。你不需要了解对象内部的底层实现细节,只需要调用对外暴露的接口完成操作,能减少外部代码随意修改内部数据引发的逻辑错误。例如定义一个用户类,把用户密码字段设置为私有,外部代码不能直接读取修改,只能通过设置好的校验方法更新密码。
继承,允许新建类复用已有类的属性和方法,新建类称为子类,被继承的原有类叫父类。子类可以直接沿用父类已写好的代码,同时新增独有的属性或者重写原有方法,减少重复代码编写。子类不会破坏父类原有代码,多个子类可以基于同一个父类扩展不同功能。
多态,同一个方法在不同子类实例上执行时,会自动匹配对应子类内部的实现逻辑。调用代码不需要判断当前对象属于哪一个子类,统一调用同名方法即可,代码扩展性较强,新增子类时,原有调用代码大多不需要改动。
三大特性不是必须全部同时使用,部分小型面向对象项目会只使用封装,不引入继承和多态。
面向对象程序设计方法与面向过程对比
| 对比维度 | 面向对象程序设计方法 | 面向过程程序设计方法 |
|---|---|---|
| 核心单元 | 对象、类 | 函数、步骤 |
| 代码组织思路 | 抽象实体,实体交互 | 拆分流程,顺序执行 |
| 维护难度 | 业务迭代时维护成本较低 | 项目变大后维护成本上升明显 |
| 上手门槛 | 需要抽象思维,门槛偏高 | 逻辑直观,入门门槛低 |
抽象,是面向对象程序设计方法的前置步骤。
抽象的操作流程,是梳理业务里存在的实体,提取实体共有的属性和行为,舍弃无关细节来构建类。开发电商系统时,你可以抽取出商品类、订单类、用户类,只保留程序需要用到的属性,商品类只保留名称、价格、库存,不需要录入商品的生产厂址、仓储编号这类无关信息。抽象完成之后,再基于类创建对象,编写对象之间消息交互的逻辑。
使用面向对象程序设计方法开发时,容易出现的错误操作是过度设计,项目规模很小,却设计多层继承结构,增加不必要的类,导致代码结构臃肿,阅读速度变慢。
