博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day 6
阅读量:4937 次
发布时间:2019-06-11

本文共 818 字,大约阅读时间需要 2 分钟。

面向某个东西,就表明这个东西是主导因素。
面向对象,那么对象就是主导因素。因此我们首先实现的不是函数,而是“类”,也即对象。
首先我们知道世界上有很多类,比如人类,爬虫类,鱼类。而人类中还有超人类,变异人类,巨人类等等(仅供参考)。
面向对象时,我们实现程序,就是先实现某个类,比如“超人类”。然后我们实现它其中的一个方法,比如“cry”。这个cry方法是源自于它的父类“人类”的。如果你不实现它,那么超人类哭起来也和普通人类没有什么不同。这就是面向对象中的“继承”。
而在
面向过程的编程时,我们只知道方法“cry”,我们首先实现了它,而不考虑任何的其他要素。假设这个cry函数实现了人类的cry。
过了一段时间,我觉得超人类可以用一滴眼泪让人起死回生,那么应该怎么编程呢?一般来说,在cry里写肯定就行不通了,得用superman_cry函数来替代。而人类的cry怎么办?我们把它改写成了human_cry。
  • 这个时候调用者就头疼了:什么时候调用human_cry,什么时候调用superman_cry呢?
  • 而且是不是每个类想要cry,就要加一个函数呢?
  • 假如我想实现超人类的其他行为,又该怎么做呢?是不是用superman_beat,superman_eat这样来增加一系列函数呢?
  • 而人类中的函数失效了以后,超人类涉及到调用人类的函数又怎么办呢?
在面向对象时,对象是主导,你只需要调用person.cry()函数,而不需要担心他是人类,超人类,或者是更细节的婴儿时期、青年、壮年、抑或老年。而在面向过程时,你必须给这些诸多可能进行分门别类的一个一个判断,写出众多的函数。在可能越来越多,项目越来越大时,函数就以指数级增长了。
面向过程非常不利于解耦,对维护也有非常大的麻烦——往往写出代码的人都不能很好的搞定自己的代码。
 

转载于:https://www.cnblogs.com/xpython/p/5021273.html

你可能感兴趣的文章
信道容量及信道编码原理学习
查看>>
关于信息论中熵、相对熵、条件熵、互信息、典型集的一些思考
查看>>
浅谈独立特征(independent features)、潜在特征(underlying features)提取、以及它们在网络安全中的应用...
查看>>
从随机过程的熵率和马尔科夫稳态过程引出的一些思考 - 人生逃不过一场马尔科夫稳态...
查看>>
《A First Course in Abstract Algebra with Applications》-chaper1-数论-关于素数
查看>>
Responsive设计——不同设备的分辨率设置
查看>>
ORA-3136
查看>>
算法笔记_145:拓扑排序的应用(Java)
查看>>
高级软件工程课程的实践项目的自我目标
查看>>
magento 搬家
查看>>
JS获取农历日期
查看>>
HDU 4267 A Simple Problem with Integers
查看>>
codeforces 154A 贪心
查看>>
循环神经网络(LSTM和GRU)(2)
查看>>
PHP中的HTTP协议
查看>>
CSS给文字描边实现发光文字
查看>>
Java WebService入门实例
查看>>
css样式之补充
查看>>
结构与联合
查看>>
关于JS历史
查看>>