中易网

为什么说面向对象编程和函数式编程

答案:1  悬赏:20  
解决时间 2021-01-14 08:43
为什么说面向对象编程和函数式编程
最佳答案
先从结构化编程说起

很久以前,软件开发的世界还是一片浑浑噩噩,不管开发什么软件都面临着复杂性这个问题,代码里面到处是goto语句,程序的流程随意跳转。众生写代码时,越写到后面越不知道自己写的是什么。这时候出现一位巨人,它就是结构化编程。

结构化编程的基本思想是:

有序地控制流程,即把程序的执行顺序限制为顺序、分支和循环这三种;
把共通的处理归结为例程(函数)。
结构化编程的好处是:

三大限制:大大降低了程序的自由度,减少了各种组合,使得程序不至于太过复杂。对于这一点,结构化编程的顺序、分支和循环可以实现一切算法,虽然降低了程序的复杂性和灵活性,但是程序的实现能力并没有降低。
例程(函数):我们只需要知道过程(函数)的名字,而不需要知道过程的内部细节,即“黑盒化”。
虽然结构化解决了程序控制流的复杂问题,但程序里面不仅包括控制结构,还包括要处理的数据。随着处理数据的增加,程序的复杂性也会上升。这时候,面向对象编程来了!

面向对象的由来

“分别管理程序处理内容和处理数据对象所带来的复杂性”问题是,为了得到正确的结果,必须保持处理和数据的一致性,这在结构化编程中是非常困难的,解决这一问题的方案就是数据抽象技术。

数据抽象是数据和处理方法的结合。这便是最初“对象”一词的得来。面向对象编程也因此得名。

然后,从抽象原则来说,多个相同事物出现时,应该组合在一起,即DRY原则(Don't Repeat Yourself),便又引出了类这一概念。

根据数据类型来进行合适的处理(调用合适的方法),本来就应该是编程语言这种工具应该完成的事。这便是多态的引出了。

而对于继承,大部分的观点是“继承是随着程序的结构化和抽象化自然进化而来的一种方式”。结构化和抽象化,意味着把共通部分提取出来生成父类的自底向上的方法。(如果继承是这样诞生的话,那么最初,有多个父类的多重继承就会成为主流,而实际上最初引入继承的Simula语言只提供单一继承。松本行弘认为继承的原本目的实际是逐步细化)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
自在娇莺恰恰啼中的娇莺指的是黄"莺吗?黄莺
想在附近找钟点工
求《在我入睡前》 百度云网盘
三里村地址在哪,我要去那里办事
皮卡从西部客运站上昆曲高速怎么走,未办入城
修仙从入门到精通的txt全集下载地址
弃捐勿复道什么意思
手机卡放在别人手机上能用,放在自己手机上不
牛霖和牛排有什么区别
长安逸动DT性能怎么样
搬家了观世音菩萨可以留在原来住的地方,不用
K970次列车和k971次列车有什么不同
求几部好看的新网剧
乐高都市卧底风云PC怎么切换中文
公务员为什么很多辞职
推荐资讯
CNC 数控加工中心编程中GOTO是怎么用的
描写大寒的句子
太极杖的规格
将5克某白色的粉末,溶解在10毫升热水中,冷却
林树森对贵州省有多少实质性的贡献?
南昌各种各样的教育平台层不不穷,到底哪个比
saw中的经典英文台词
江西赣州一年四季的气候都是怎样的?特别是冬
c语言中为什么函数不能重名?请举个函数重名
天刀明玉染色什么好看
账面库存比实际库存大,账务怎么处理?
2公里开车要多久
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?