0

首先人们在解决一个问题的时候肯定是先分析出解决这个问题所需要的步骤然后一步一步的去实现最终达到目的,软件开发也一样,在开发一个软件时,我们先分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用,这样如果是一个简单的程序可能没什么,但是如果是一个大型的工程,他的需求就会非常的复杂甚至频繁的变更。而我们这种面向过程式的开发模式是以功能为目标来设计构造应用系统的,这种做法导致我们设计程序时,不得不将这一个个步骤映射到由功能模块组成的解空间中,我们的关注点在一个个的步骤,也就是一个个函数,这样当系统比较庞大时,如果一昧的去执著与这种模式,则会导致程序不利于复用,拓展,维护,比如现在有一个象棋程序,假如我要加入悔棋的功能,如果面向过程设计的话,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整,所以有人提出了一种模式,在这个模式里我们为数据和函数提供共同的独立内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝,这些拷贝之间相互独立。在这个开发模式中我们可以将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数,这种为数据和函数提供共同的独立内存空间的行为我们称它为封装,这种开发思想我们叫它面向对象,这个模板我们称它为类,当我们需要使用时分配的某一个具体的内存空间的引用被称为对象,通过这个对象我们可以调用这个内存空间里的数据和函数,这些数据和函数分别被称为属性和方法,我们把相关的属性和方法封装到一个类里,在使用时这些类可以构造出独立的对象,相比于面向过程,拿吃饭来说:面向过程强调的是”吃饭”,”人”只是一个参数;面向对象强调的是”人”,”吃饭”只是一个动作.我们用对象来管理这些属性和动作。所以再解决上述悔棋问题时我们就不需要那么复杂,只用改动棋盘对象就行了,棋盘系统保存了红黑双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的,我们只需要改动棋盘那块内存里的数据,所以我们管这种以类和对象去去组织去管理数据和函数的这种开发方法称为面向对象。说白了一句话面向对象其实就是在系统庞大时提出的一种管理模块(代码的模块和内存的模块)的方式(功能的模块化,内存的独立性)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值