应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

五分钟理解什么是面向对象

7月3日 罗刹长投稿
  昨天讲了MVC,有同学表示还想了解一些软件开发架构方面的姿势。我琢磨了半天,列了不少技术名词,本来想挑一个出来讲一讲,写了一半发现有很多前置知识之前没涉及,于是决定把坑填一填,先从基础的面向对象讲起。
  话说起来,面向对象的产生还有各位产品经理的功劳。为什么这样说呢?因为一开始的时候,并没有面向对象,只有面向过程的概念。面向过程很好理解,指的是程序员接到需求,会把它拆成一个一个的命令,然后串起来交给计算机去执行。举个例子,产品经理说要把大象装进冰箱里。程序员列了几个步骤:
  把冰箱门儿打开。
  把大象装进去。
  把冰箱门儿关上。
  上面每一个步骤,程序员都会用一个函数来实现。函数是一些代码的集合体,每个函数可以实现一个功能。比如我要定义一个打开冰箱门的函数:
  所有函数定义好了之后,依次调用就可以了:
  openTheDoor();
  pushElephant();
  closeTheDoor();
  需求完成,顺利交工。但是你以为这样就结束了?Naive。产品经理说才刚刚开始呢。
  我要把大象装微波炉里
  我要把狮子也装冰箱里
  我要把大象装冰箱,但是门别关,敞着就行
  如果还是用面向过程的方法来应付,每次需求的变更,程序员就要把整个系统通读一遍,找出可用的函数(如果没有就再定义一个),最后依次调用它们。最后系统越来越杂乱无章难以管理,程序员不堪重负,纷纷操起刀走上了犯罪的道路。
  面向对象从另一个角度来解决这个问题。它抛弃了函数,把对象作为程序的基本单元。那么对象到底是个什么东西呢?对象就是对事物的一种抽象描述。人们发现,现实世界中的事物,都可以用数据和能力来描述。比如我要描述一个人,数据就是他的年龄、性别、身高体重,能力就是他能做什么工作,承担什么样的责任。描述一台电视,数据就是它的屏幕尺寸、亮度,能力就是播放《葫芦娃》。
  面向对象的世界里,到处都是对象。对象不光有数据和能力,还可以接受命令。例如你可以让狗这个对象吃狗粮,就可以把吃狗粮的命令发给狗让其执行,然后我们就实现了狗吃狗粮的需求。
  现在对象有了,如何进行面向对象的编程呢?很简单,依次向不同的对象发送命令就可以了。回到上面的例子,用面向对象来实现,我们会先定义一个冰箱对象,它的数据就是当前的冷冻温度,或者该冰箱已经有了多少头大象,能力就是开门、关门。还有一个大象对象,它的数据可以是大象的智商、体积,能力就是自己跑到冰箱里去。然后我们依次:
  向冰箱下达开门的命令。
  向大象下达进冰箱的命令。
  向冰箱下达关门的命令。
  面向对象有很多特性,你可能听说过继承、封装、多态的概念,但我不准备在这里讲这些(可能后面的文章会介绍),我就说下我理解的面向对象,最重要的两个特性。
  自己的事情自己做。
  我们创建的对象,应该是刚刚好能做完它能做的事情,不多做,不少做。多做了容易耦合,各种功能杂糅在一个对象里。比如我有一个对象叫汽车,可以行驶,可以载人,现在的需求是要实现载人飞行,就不能重用这个对象,必须新定义一个对象飞机来做。如果你给汽车插上了翅膀,赋予了它飞行的能力,那么新来的同学面对你的代码就会莫名其妙,无从下手。
  面向接口编程。
  现在我们把数据和行为都封装到了对象里,相当于对象成了一个黑匣子,那我们怎么知道对象具有什么样的能力呢?这个问题的关键就是接口。关于接口,之前的文章《5分钟理解什么是接口》有过介绍。对象把它的能力通过接口的方式公布出来,自己则成为接口的实现者。这样调用者就不用关心接口背后的对象是什么东西,如何实现的了。还是上面的例子,产品经理现在说要把大象放洗衣机里,通过我们的分析,洗衣机也需要有开门、关门的能力。那么我们就可以抽象出一个接口来,它就是开门和关门的能力集合,假设我们称之为大象之家接口。我们的对象冰箱、微波炉、洗衣机都实现大象之家的接口,尽管实现方式不一样,但是在外界看来,它们都是一样的,都是可以盛放大象的容器。这样我们编程的时候就可以这样写:
  向大象之家下达开门的命令。
  向大象下达进冰箱的命令。
  向大象之家下达关门的命令。
  至于大象之家到底是个什么东西,我们不care。即使哪天变成了马桶,开门和关门的具体实现交给负责马桶对象的同事,我们只管调用就可以了。

想赢得婆婆的欢心媳妇必学大秘诀在家庭中,两代人之间的矛盾和冲突,最明显和最常见的,是出现在婆媳关系上。婆媳不合,是使不少人提起就摇头叹息的问题。其实婆媳关系并不是想象中那么难相处,如果媳妇不跟婆婆计较,婆婆……薛姓女孩取名高雅今天我们是给各位姓薛的朋友,带来一些适合女孩的名字,如果您近期正好有取名需求的话,欢迎前来参考。不少家长都想给宝宝取一个高雅点的名字,那希望下面这些例子中能有你满意的选项。可能……五分钟理解什么是面向对象昨天讲了MVC,有同学表示还想了解一些软件开发架构方面的姿势。我琢磨了半天,列了不少技术名词,本来想挑一个出来讲一讲,写了一半发现有很多前置知识之前没涉及,于是决定把坑填一填,……常春藤枯了要剪掉吗常春藤枯了要剪掉,将枯枝枯叶剪掉后,能够节省养分,还能增强常春藤的观赏性。在养护期间,常春藤上的长枝、密枝和病虫枝也需要剪掉,修剪后有利于常春藤的生长。给常春藤进行修剪后,要记……浅谈技工学校德育工作中的法制教育據有关资料统计,目前我国学生违法犯罪现象十分严重,犯罪率直线上升,犯罪人员日趋低龄化。由于缺乏法律认知,法制观念淡薄,打架斗殴、校园暴力、违法犯罪等现象在校园中屡见不鲜,并且数……注意孕早期是孕妇补碘的关键时间在日常生活中,人们通过多种途径加强碘的摄入,最为常见的便是饭菜中的碘盐。那么,注意!孕早期是孕妇补碘的关键时间。跟着本站小编来学习一下吧!微量元素之碘需求量:……我爱大海我爱海,可是我没有看见过真的大海,但是我在电视上看见过海,在电视上看见的海给我的印象非常深刻,海是很美丽的,我爱海的浩瀚无际、爱海的变幻无穷、爱海的风平浪静、也爱海的惊涛骇浪……女人吃对红枣一辈子不显老所谓天天吃大枣,青春永不老一天十个枣,一辈子不显老,五谷加大枣,胜过灵芝草,若要皮肤好,粥里加大枣,这些话语听起来虽然有些夸张,但也说明常常食用大枣对健康是非常有益的。一起了解……服药时怎么减轻药的苦味呢俗话说,良药苦口利于病,但是有些药实在是苦得让人无法接受,尤其是中药汤剂,某些孩子更是会因为受不了这种苦而拒绝服药。无奈之下,家长就会往中药里加些糖,以此来减轻药的苦味,那么服……春柳三月一到,天气变得渐渐暖和起来了。春风一吹,秦淮河畔的柳树,渐渐的抽出了青绿的枝条,长出了新鲜的嫩叶。好看到只能用一个字来形容,那就是:美。秦淮河畔,杨柳青青。你如果仔细……霉菌性阴道炎会引起阴道出血吗霉菌性阴道炎是女性阴道炎中发病率最高的一种,以白带增多、外阴奇痒和甚至溃烂疼痛为典型症状。很多朋友都问:霉菌性阴道炎会引起阴道出血吗?下面就随本站一起来找寻答案吧。霉菌性……隧道通风控制系统改造案例应用于高级工一体化教学探摘要:本文以厦门某隧道通风控制系统改造为例,分析介绍了如何通过对原设计电路的修改,结合ABB软启动器的性能特点,实现对动力设备的有效控制。并把实际运行中的成功案例应用于预备技师……
小蜗牛历险记在一天春光明媚的上午,小乌龟在次去旅行。那和煦的春风吹过一股沁人心脾的芳香扑鼻而来。小草给大地铺上了一层地毯。荷花的花瓣,洁白如玉。话里托着深绿色的莲蓬,莲蓬向上的一面有许多小……想让宝宝健康怀孕期营养不可缺哦孕妇的营养对胎儿及母体都是非常重要的。那么,想让宝宝健康,怀孕期营养不可缺哦!本站和您一起来看一下!孕期吃什么让宝宝成为高富帅经常有父母为了孩子的身高发愁。尤其是男……孕妇产期抑郁症怎么分辨轻重如果孕产妇以自我为中心、神经质、情绪不稳定、社交能力不良、性格比较内向,则发生孕产期抑郁的概率就比较高。加上产后雌激素、孕激素的降低、变化及不平衡,也会对情绪造成影响。孕妇产期……梦回大唐上小学以来,通过阅读我对历史产生了浓厚的兴趣,特别是我国古代最强大、最富有的唐朝十分吸引我。去年暑假,我和父母一起游览古老的西安城,去探索唐朝的昔日繁华。西安在唐朝时称长……春游历险记东风吹,战鼓擂,我们一班怕过谁?我们在这嘹亮的口号声中来到了春游地点青青世界。东风吹,战鼓擂,我们一班怕过谁?在这气势庞大的口号声中,我们来到了第一个项目,可谁知,它一上……不同年代有着不同的分手方式年代分手等同于离婚80后90后早就有了新的分手规则,同时也是当前时下最流行的分手规则,都不用道分手,那就是在赛客虚拟家庭上面,男人只要买栋四星级别墅,网站就会给他推荐同城女人。不过在那上面组建的……假如我有一双翅膀小时候,我总是伏在桌子上,仰视的那张贴在墙上的中国地图。心想,假如我能有一双翅膀,那该多好啊!假如我有一双翅膀,我要游览我国举世闻名的古迹。我要飞到那雄伟的万里长城,一览……唐朝的凌烟阁二十四功臣都有谁他们分别是什么结局凌烟阁二十四功臣,很多人都知道,他们是唐朝时期跟随李世民建功立业的功臣们,一共有二十四位,虽然对于他们的排名,很多人表示不理解,比如为什么长孙无忌排在第一位,秦叔宝却排在最后一……中国三大鬼节是哪三个清明中元寒衣鬼节禁忌解析说起中国三大鬼节,人们第一个想到的肯定会是清明节。清明节是中国三大鬼节之一,也是中国最重要的祭祀节日。中国三大鬼节分别是指:清明节、中元节、寒衣节,在这几天人们要祭祖,这是从中……男人泡妞的六种调情术1、注意你的面部表情。无聊说话还是聆听,都要进行眼神接触。眼神接触至少要保持两秒钟才能移开。2、保持交谈的平衡意思是,你们双方应当说同样多的时间。要是你感到一直是你在说话……淘宝海淘转运需要保价吗很多人在淘宝海淘完准备转运之后,对于是否对海淘货物转运是否要进行保价都会存在疑问。那么海淘转运保价到底是什么意思呢?到底需不需要对正在转运过程中的淘宝海淘商品进行保价呢?今天小……孤独伤感的心情签名唯美大全防备着平静到最后独自寂寞人是千方百计十面埋伏生是万般无奈一声叹息昼夜往返各自走好你那样笑突然让我想起来我们疏远之前你也是这样对我好入夜了我衣衫太薄归家靠路灯……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找