网站建设需要硬件设备,typecho 转 wordpress,网站授权合同,湖南网络优化何谓面向对象#xff1f;何谓面向过程#xff1f;对于这编程界的两大思想#xff0c;一直贯穿在我们学习和工作当中。我们知道面向过程和面向对象#xff0c;但要让我们讲出来个所以然#xff0c;又感觉是不知从何说起#xff0c;最后可能也只会说出一句就是那样啦#… 何谓面向对象何谓面向过程对于这编程界的两大思想一直贯穿在我们学习和工作当中。我们知道面向过程和面向对象但要让我们讲出来个所以然又感觉是不知从何说起最后可能也只会说出一句就是那样啦你知道啦。而这种茫然其实就是对这两大编程思想的迷糊之处。本文通过学生到校报道注册的实例阐述了面向过程和面向对象两大思想。希望能对你的学习和工作有所帮助。 一、面向过程 首先我们来认识下什么是面向过程如果咬文嚼字的话可以这样来理解面向过程就是面向解决问题的过程进行编程。仔细思考一下我们在学习和工作中当我们去实现某项功能或完成某项任务时是不是会不自觉的按部就班的罗列出我们要做的事情如果没有建议以后试着步骤化解决问题。而当我们按着我们罗列的步骤去解决问题时实质上就是按照面向过程的思想去解决问题。我们罗列的步骤就是过程按照步骤解决问题就是面向过程。 传统的面向过程的编程思想总结起来就八个字——自顶向下逐步细化实现步骤如下
将要实现的功能描述为一个从开始到结束按部就班的连续的步骤过程依次逐步完成这些步骤如果某一步的难度较大又可以将该步骤再次细化为若干个子步骤以此类推一直到结束得到想要的结果程序的主体是函数一个函数就是一个封装起来的模块可以实现一定的功能各个子步骤往往就是通过各个函数来完成的从而实现代码的重用和模块化编程 案例学生到校报道注册 面向过程流程图 面向过程就是按照我们分析好了的步骤按部就班的依次执行就行了所以当我们用面向过程的思想去编程或解决问题时首先一定要把详细的实现过程弄清楚。一旦过程设计清楚代码的实现简直轻而易举。 二、面向对象 讨论完了面向过程我们再来认识下面向对象。所谓的面向对象就是在编程的时候尽可能的去模拟真实的现实世界按照现实世界中的逻辑去处理一个问题分析问题中参与其中的有哪些实体这些实体应该有什么属性和方法我们如何通过调用这些实体的属性和方法去解决问题。 现实世界中任何一个操作或者是业务逻辑的实现都需要一个实体来完成也就是说实体就是动作的支配者没有实体就肯定没有动作发生 现在让我们思考下上述注册报名的每一个步骤都有哪些动词 提出 提供 缴 收 获得 分配 增加 有动词就一定有实现这个动作的实体 所谓的模拟现实世界就是使计算机的编程语言在解决相关业务逻辑的方式与真实的业务逻辑的发生保持一致需要使每一个动作的背后都一个完成这个动作的实体 因为任何功能的实现都是依赖于一个具体的实体的“动作|操作|行动”可以看作是一个又一个的实体在发挥其各自的“能力”并在内部进行协调有序的调用过程 当采用面向对象的思想解决问题时可分为下面几步 分析哪些动作是由哪些实体发出的定义这些实体为其增加相应的属性和功能让实体去执行相应的功能或动作。 采用面向对象的思想解决上面的报名问题应该如下 第一步分析那些动作是由哪些实体发出的
学生提出报名学生缴费机构收费教师分配教室班级增加学生信息 于是在整个过程中一共有四个实体 学生、机构、教师、班级 在现实中的一个具体的实体就是计算机编程中的一个对象 第二步定义这些实体为其增加相应的属性和功能 属性就是实体在现实世界中的一些特征表现。如 人的属性姓名、性别、身高、三围、体重、电话号码、家庭住址、籍贯等手机的属性品牌、价格、颜色、尺寸、待机时间等 功能就是能完成的动作在面向对象的术语中动作就叫作方法或者函数。如 人的动作功能吃饭、睡觉、学习、打游戏、走路、跑步、缴费手机的动作功能打电话、发短信、拍照、打游戏、视频、看电影等 下图显示了在上述实例中出现的实体以及相应的属性和功能 第三步让实体去执行相应的功能或动作
学生提出报名学生缴费学校收费教师分配教室班级增加学生信息 所以说面向过程主要是针对功能而面向对象主要是针对能够实现该功能的背后的实体。面向对象实质上就是面向实体所以当我们使用面向对象进行编程时一定要建立这样一个观念万物皆对象 三、面向对象和面向过程的比较 在我们将面向过程和面向对象讨论完后会明显的感觉两者之间有着很大的区别。面向过程简单直接易于入门理解模块化程度较低。而面向对象相对于面向过程较为复杂不易理解模块化程度较高。可总结为下面三点
都可以实现代码重用和模块化编程但是面对对象的模块化更深数据更封闭也更安全因为面向对象的封装性更强面对对象的思维方式更加贴近于现实生活更容易解决大型的复杂的业务逻辑从前期开发角度上来看面对对象远比面向过程要复杂但是从维护和扩展功能的角度上来看面对对象远比面向过程要简单 如何选择面向对象还是面向过程对于一个有着丰富开发经验的老手来说这是个得心应手的过程。而对于一个新手而言其实从两者的对比就可以看出当我们的业务逻辑比较简单时使用面向过程能更快的实现。但是当我们的业务逻辑比较复杂时为了将来的维护和扩展还是面向对象更为靠谱点当然当我们被经理催着上交项目时不要再选择纠结了哪个能让你更快的完成项目就用哪个吧 四、通俗易懂地举例说明“面向对象”和“面向过程”有什么区别 如何大象装进冰箱 面向过程 为了把大象装进冰箱需要3个过程。 1) 把冰箱门打开得到打开门的冰箱 2) 把大象装进去打开门后得到里面装着大象的冰箱 3) 把冰箱门关上打开门、装好大象后获得关好门的冰箱 每个过程有一个阶段性的目标依次完成这些过程就能把大象装进冰箱。 1: 冰箱开门(冰箱) 冰箱装进(冰箱, 大象) 冰箱关门(冰箱) 换个写法 (冰箱开门 冰箱) (冰箱装进 冰箱 大象) (冰箱关门 冰箱) 2: 冰箱关门(冰箱装进(冰箱开门(冰箱), 大象)) 换个写法 (冰箱关门 (冰箱装进 (冰箱开门 冰箱) 大象)) 面向对象 为了把大象装进冰箱需要做三个动作或者叫行为。 每个动作有一个执行者它就是对象。 1) 冰箱你给我把门打开 2) 冰箱你给我把大象装进去或者说大象你给我钻到冰箱里去 3) 冰箱你给我把门关上 依次做这些动作就能把大象装进冰箱。 1: 冰箱.开门() 冰箱.装进(大象) 冰箱.关门() 2: 冰箱.开门().装进(大象).关门()