00:00
那么这一块呢?为什么面向对象成为主流?其实我在刚才在讲课的过程当中已经跟大家说了,面向对象之所以成为主流,是因为面向对象更符合人类的思维方式。面向对象更符合人类的思维方式啊,这也是就是面向对象成为主流的啊,面向对象成为主流的。啊,原因就是它更符合人类的,你比如说我说老虎对吧,你你脑子里想象这个老虎的样子,你不会想象老虎的爪子对吧,哎你你哎我说说是是这个理吗?我说大象对吧?哦,你脑袋脑脑袋里面呈现是个大象的一个整体是不是,哎,所以人类的跟。更符合我们人的这种思维方式,所以面向对象成为了哎,一个主流啊,成为了主流,呃,那么接下来呢,其实我也可以给大家举一个例子啊,举一个例子,比如说比如说大家。这个。最典型的啊。举个例子再说一下跟面对象和面过程有什么这个区别啊。
01:00
找一个合适的案例啊,说明一下。面向对象和面向过程的区别,比如说蛋炒饭。啊和盖饭。各位,这两个哪个是面向过程的,哪个是面向对象的?蛋炒饭和盖饭。这个应该大家都吃过吧,蛋炒饭和盖饭哪个是面向过程的,哪个是面向对象的呢?各位。比如今天我我我我下班了,我去饭馆干啥,吃饭去了。啊,吃饭去了,然后呢,我呢有这个蛋炒饭是吧,这个到这个饭店之后呢,这个老板说了,他这个菜单拿过来,有蛋炒饭,有盖饭是吧,那我呢,就要了个蛋炒饭是不是啊,我说那老板我呀来一个那个蛋炒饭。老板呢,叭叭叭开始做是吧,做完之后呢,把蛋炒饭干啥呢,端到我面前了,大家都知道蛋炒饭呢,它的特点是什么?是鸡蛋和这个米饭呀,是炒在一起的,炒在混合在一起,完全混合在一起,没有对象的概念,对对,没有对象概念,它不像说哦,鸡蛋是一份,然后呢,饭是一份,然后呢鸡蛋就放在这个饭上面,它不是这种感觉,是说鸡蛋和这个米饭啊,是炒在一起的啊,炒在一起的就是说蛋炒饭是鸡蛋和米饭啊,完全混合在一起,没有对象。
02:32
啊,没有独立对象的概念,那我们来分析一下,老板把那个饭端上来之后呢,放到我眼前,我说我说老板啊,这样我我我只想吃米,我只想吃米,我不想吃这个蛋。对,然后。我是客户啊,对不对,老板。对吧,他得满足我这个客户的需求,是不是,哎,满足客户需求,那同学说了,他说那既然想吃米饭,那得了。老板,直接盛份米饭不就行了吗?哎,你说错了啊,我还就想吃蛋炒饭,完了之后呢,我要把这个蛋炒饭里面的鸡蛋捡出来,我要吃蛋炒饭之后的这个饭。
03:09
就是我我我我很刁难对不对,我很刁难,我就想做这件事情,那么对于这个我的我是一个客户来说,我提出的新的需求,就像是一个软件一样,这个软件我提出了新的需求,那么客户这边提出新的需求之后呢,你呢,作为软件的一个开发者,或者是作为这个蛋炒饭的这个这个制作者来说,他必须得满足客户的一个需求,那么此时呢,于是呢,他就开始来进行扩展。那它怎么扩展呢?它只能一个一个把那个鸡蛋粒啊,怎么着给它挑出来,鸡蛋粒呢,给它挑出来能不能实现,各位也能实现,但是这个呀,爱吃不吃,爱吃不吃啊,然后那个呃,就是要把这个鸡蛋粒怎么着全挑出来,然后才能吃这个饭,所以呢,咱们这个这个这个这个这个这个软件的开发者,或者是做这道菜的,或者做这个蛋炒饭的这个厨师啊,就开始做这件事情,但是扩展力很差,耗费了很长时间,感觉你挨打就有可能是这样的,有可能是这样,确实是,就是我只是举个例子啊,大家到这个饭店可千万别这么干啊,到这么干我估计你很难出来啊,很难出来蛋炒饭,鸡蛋和米饭完全混合在一起,没有独立对象的概念啊。
04:17
假设假设啊,客户提出新需求,我只想吃蛋炒饭中的米饭啊,怎么办?对吧?客户提出需求啊,软件开发者必须满足这个需求。于是开始什么呀,扩展啊,这个软件的扩展是一场噩梦啊,是一场噩梦,是很难扩展的,很难扩展。叫做很难很难扩展,偶合太高了,合太高了,白咱们讲课归讲课啊,你出去之后千万别这么干啊,千万别这么干,蛋炒饭鸡蛋和米饭完全混合在一起,没有独立的对象的概念啊,假设我们这个客户提出新的需求是吧,只想吃蛋炒完成的米饭怎么办?对吧?客户提需求了,你满足呗,满足,于是开始扩展啊,这个软件的扩展是一场噩梦啊,想梦很难扩展,耦合度太高了,那盖饭,比如说现在啊。
05:26
我要是我要一个什么呢?要一个这个叫鱼香,鱼香肉丝盖饭。啊,我说老板来一份鱼香肉丝盖饭。对吧,我说老板。来一份。鱼香肉丝盖饭。后来啊,后来这个就相当于什么呢,这个鱼香肉丝做好了啊,然后呢饭呢,其实是一个对象,就像什么呀,鱼香肉丝啊,鱼香肉丝是一道菜。
06:01
可以看成一个独立的对象。对吧,哎,米饭啊,可以看成是看成一个独立的对象。两个对象准备好之后,准备好之后只要只要。有一个动作啊。叫做盖,明白吧,盖饭嘛,是不是啊盖饭啊盖这样两个对象就就组合在一起了啊,组合在一起了。啊,假设客户提出新需求。我想吃西红柿鸡蛋盖饭啊,我不想吃鱼香肉丝了。啊,想吃什么呢?哎,想吃西红柿鸡蛋盖饭。
07:02
这个扩展就很轻松了啊,你不要想太认真了,各位啊,你不要想太认真了,你说我是吧,这个这个老是老是去钻牛角尖的话,我觉得就没有意义了啊,就大概的理解一下好吧,啊大概理解假设客户提提出新的需求,我不想吃这个鱼香肉丝盖饭,想吃西红柿鸡蛋盖饭,这个扩展就很轻松了啊,直接把把哪个对象把鱼香肉丝这个对象换成西红柿鸡蛋。对象啊,把这个对象换成什么呀。换成西红柿鸡蛋对象啊,西红柿鸡蛋对象啊,来咱们这个伟斌说说老老板,老老板说我都下锅了是吧?啊这这这这就是认真了啊,这就是又想认真了,对我大概呢,是给大家举个例子,就是说你不要太认真,如果你太认真,这个咱们没法去去理解啊,就是我给大家找这么一个例子,就是蛋炒饭和盖饭这个东西啊,蛋炒饭盖饭,那这个蛋炒饭呢,其实就是说米饭和鸡蛋是混合在一起的,采用这种方式去面面过程的是盖饭的话,我们的概念其实就类似于什么呀,哎。
08:07
哎,我们的盖饭就类似于什面向对象的方式,就比如说西红柿鸡蛋,它是一个对象,然后米饭呢是个对象,然后呢,我们盖一下对吧,就形成一道菜啊,就形成一道菜,我们就可以吃午餐了,但现在我不想吃西红柿鸡蛋盖饭,我想换成别的,那对于老板来说,对于这个呃,软件的开发人员来说,他可能扩展起来会比较轻松一些,对不对啊,扩展起来会比较轻松一些,那直接把对象更换一下就可以了,总之呢,咱们呢,这耗费了将近一节课的时间,我们去讲解这个内容啊,就他面向对象和面向过程的一个区别,那我讲到这,大家到底理解多少,这个很难说啊,很难说,呃,慢慢来吧,这个东西咱们不能着急啊,因为我说了,真正要去理解面向对象和面向过程的一个区别,还需要至少三年的时间,你去做这个项目,然后才能真正体会到,哦,面向对象是这个意思啊,面对这个意思,总之现在呢,你要知道面向过程关心的是什么呀,因果关系,面向对象呢,哎,关心的是什么呀,是我们对象啊,关注点不一样,关注点不同,我在最后呢,我们再写上啊,面向过程主要关注的是。
09:08
实现步骤啊,过程关注的是实现步骤以及整个过程啊,面向对象主要关注的是那就是对象A。有了对吧,哎,对象B对吧,对象C啊,然后对象ABAC组合或者CBA。组合对吧,哎,或者等等等等啊,就是这样,那显然面向对象的扩展力要强一些,面向过程的扩展力要差一些啊,扩展力强是耦合度太高了啊扩展力,呃,扩展力强的是耦合度太低,耦合度低啊耦合度低,扩展力强,耦合度高,扩展力差啊扩展力差,行,这节课我们先到这儿,大家休息15分钟吧。
我来说两句