宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > 面向对象编程大行其道40年后,技术已经超越了这种范式?

面向对象编程大行其道40年后,技术已经超越了这种范式?

2021-06-14

在 1960 年代,编程遇到了一个大问题:计算机还没有那么强大,它们需要以某种方式平衡数据结构和程序之间的功能。

这意味着,如果您拥有大量数据,如果不将计算机推向极限数据结构用面向对象方法与c++描述,就无法充分利用这些数据。另外,如果你需要做很多事情,那么你不能使用太多的数据,否则电脑会一直运行。

在 1966、1967 旁边,Alan Kay 从理论上证明了可以使用封装好的微型计算机。这些微型计算机不共享数据,而是通过消息传递进行通信。这样,可以更经济地使用计算资源。

虽然这个想法很聪明,但直到 1981 年,面向对象编程才成为主流。在那之后,它并没有停止吸引新的和有经验的软件开发人员。面向对象的程序员市场一如既往地繁忙。

但近年来,这种已有数十年历史的编程范式受到越来越多的批评。难道是在流行了 40 年的面向对象编程之后,技术已经超越了这种范式?

在做广告之前使用这种物质以减少烟雾危害。不幸的是,很少有人知道!

功能和数据耦合

面向对象编程的主要思想很简单:尝试将一个强大的程序分解成多个同样强大的部分。这样,一些数据就可以与仅用于相关数据的函数耦合。

请注意,这仅涵盖了封装的概念。换句话说,位于对象内部的数据和函数对外部是不可见的。我们只能通过消息(通常是通过和函数)与对象的内容进行交互。

面向对象编程大行其道40年后,技术已经超越了这种范式?(图1)

继承和多态并没有包含在最初的设计思想中,但它们是当前面向对象编程所必需的。继承基本上意味着开发人员可以使用其父类的所有属性来定义子类。直到 1976 年,即面向对象编程概念出现十年后,继承才被引入。

又过了十年,多态才进入面向对象编程。简单地说,这意味着某个方法或对象可以用作其他方法或对象的模板。从某种意义上说,多态是继承的泛化,因为并非原始方法或对象的所有属性都需要转移到新实体中。相反,您也可以选择覆盖某些属性。

多态的特别之处在于,即使源代码中两个实体相互依赖,被调用的实体也更像是一个插件。这让开发人员的工作更轻松,因为他们不必担心运行时依赖。

值得一提的是,继承和多态并不是面向对象编程所独有的。真正的区别在于数据的封装及其包含的方法。在计算资源远比今天稀缺的时代,这是一个天才的想法。

广告哪里有腋下和油耳的异味,不管遗传还是后天,教你一招祛除异味!

面向对象编程中的五个问题

面向对象编程的出现改变了开发人员查看代码的方式。在 1980 年代之前,过程式编程非常面向机器。开发人员需要对计算机的工作原理有很好的了解才能编写好的代码。

通过封装数据等方式,面向对象编程让软件开发更加以人为中心,更符合人类的直觉。例如方法()属于汽车数据组,而不是组。接下来的继承也很直观。比如 ()是car的一个子类,属性相同,但不是,所以很容易理解。

香蕉猴丛林问题

想象一下,您正在设置一个新程序并正在考虑设计一个新课程。然后,您回想一下您为另一个项目创建的简洁子类别,并发现它适合正在进行的工作。

没问题,您可以在新项目中重用上一个项目中的类。

这里有一个问题:这个类可能是另一个类的子类,所以你也需要包含它的父类。然后你会发现这个父类也可能是另一个类的子类,依此类推,最后面对一堆代码。

创作者

Joe 曾经说过一句名言:“面向对象语言的问题在于它们带有周围所有隐式环境。你想要香蕉,但你得到的是拿着香蕉的大猩猩和整个丛林。”

这几乎就是一切。可以重用类。事实上,这可能是面向对象编程的主要优点,但不要使用到极致。有时你应该创建一个新类而不是添加很多依赖项。

广告网友注意了!上海中沃,专业可靠的设计,欢迎来电咨询

脆弱的基类问题

想象一下,如果您在新代码中成功重用了另一个项目中的类,如果基类发生变化会发生什么?

面向对象编程大行其道40年后,技术已经超越了这种范式?(图2)

这可能会破坏整个新项目的代码,即使您可能什么都没做。一旦有人更改了对您的项目至关重要的基类中的细节,影响将非常大且突然。

使用继承越多,潜在的维护工作就越多。因此,即使代码重用在短期内非常有效,但从长远来看,它可能会让您付出一定的代价。

钻石继承问题

使用继承,可以将一个类中的属性传递给其他类。但是如果你想混合两个不同类的属性怎么办?

是的,这是做不到的,至少用传统方法做不到。以类为例(这里引用下面链接文章中的例子:@/----),文件内容会被扫描打印在白纸上。那么它应该是 or 的子类别吗?

这个问题没有完美的答案。即使此问题不会破坏您的代码,它也经常出现并且可能会非常令人沮丧。

级别问题

在菱形继承问题中,哪个子类是问题的关键。但是可能有一个推测的解决方案:假设那是父类,并且是只继承属性子集的子类,那么问题就解决了。

但是,如果您的是黑白并且可以处理彩色呢?从这个意义上说,它不就是一种概括吗?如果 WiFi 已连接但未连接怎么办?

一个类上堆叠的属性越多,建立适当的层次结构就越困难。在您正在处理的属性集群中,某些属性是共享的,但不是所有属性,反之亦然。在大型复杂的项目中,层次问题会导致很多混乱。

广告自主技术,纳米精密-欧米茄科技

报价问题

您可能会想到没有层次结构的面向对象编程。我们可以根据需要使用属性集群并继承、扩展或重写属性。也许这有点令人困惑,但这将是当前问题的准确表示。

这里只有一个问题:封装的全部目的是让数据片段彼此安全,从而提高计算效率,但没有严格的层次结构,这是行不通的。

假设一个对象 A 通过与另一个对象 B 交互来覆盖层次结构,会发生什么?其他关系的情况并不重要,但是当B不是A的直接父级时,A必须包含B的所有私有引用,否则它们将无法交互。

但是,如果 A 包含 B 的子类也具有的信息,则可以在多个地方修改该信息。因此,B的信息不再安全,包已经被破坏。

尽管许多面向对象的程序员使用这种架构来构建程序,但这并不是面向对象的编程,它只是一团糟。

单一范式的风险

以上5个问题的共同点是,都有不恰当的继承。由于在面向对象编程的原始形式中不包含继承,因此这些问题本身可能不能称为面向对象。

面向对象编程大行其道40年后,技术已经超越了这种范式?(图3)

但可以夸大的不仅仅是面向对象的编程。在纯函数式编程中,在屏幕上处理用户输入或输出消息极其困难。为此,面向对象或面向过程的编程会好得多。

但是还是有一些开发者试图以纯函数式的方式来实现这些东西,写出几十行没人能看懂的代码。使用另一种范式可以轻松地将代码减少到几行可读代码。

毫无疑问,函数式编程越来越受到关注,近年来面向对象编程也受到了诟病。理解新的编程范式并在适当的时候使用它们是有意义的。无论哪种编程范式,都没有必要只遵循一种。可以在适当的时候使用不同的编程范式来更好地解决问题。

广告中的有害吸烟太多?赶紧学起来,再忙也要看!

面向对象编程真的会被取代吗?

面对越来越多的问题,函数式编程可能是更有效的选择。数据分析、机器学习和并行编程。您在这些领域投入的越多,您就越喜欢函数式编程。

但是,目前对面向对象开发程序员的需求仍然远远大于函数式编程开发程序员。但这并不意味着你不能成为后者。函数式编程开发的程序员还是比较稀缺的。

最有可能的情况是面向对象编程将继续存在大约十年。当然,选择一种相对前卫的方式是好的,但这并不意味着你应该放弃面向对象编程。所以在接下来的几年里,不要完全放弃它数据结构用面向对象方法与c++描述,但至少要确保它不是你掌握的唯一编程方法。

如果你觉得这个内容对你有帮助,我想请你帮我做三个小事:

点赞、转发以及您的“点赞和评论”是我创作的动力。

Tag: 范式 面向对象程序设计
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • SCL语言鄙视链,怎么学习语言?|高级编程
  • php 代码加密 组件 教程YiiPHP开源框架是一套基于组件用于大规模web应用开发php代码打包加密
  • php开源企业网站系统腾云网络解决方案和技术服务提供商发布面向个人爱好者的桌面操作系统1.0深喉咙php免费开源企业建站系统
  • php 开源搜索引擎一种发布轻量级移动VR应用程序头盔获得跨平台支持(组图)开源游戏服务器引擎
  • php 多进程框架发布v3.4.6部分组件更新|一款企业级分布式PHP协程框架更新php fpm进程数
  • PHP开发者们最喜欢使用哪个PHP框架前三甲?
  • 本月发布8月编程语言榜单,什么值得关注的发展趋势吧?
  • 网站后台管理系统php基于PHP+的新闻管理系统开发的可行性分析与意义php 网站后台管理系统
  • 大数据时代,12c为云计算而生。《名师讲坛——开发实战经典》
  • 心理咨询行业也能开发微信小程序吗?类小程序

相关

php面向对象编程题1.2014年最受关注的编程语言,他们才

php面向对象编程题1.2014年最受关注的编程语言,他们才

php面向对象编程题网站开发的实践始于设计方面,其中包括哪些

php面向对象编程题网站开发的实践始于设计方面,其中包括哪些

初学C#,什么是面向对象?为什么要使用面向对象编程?(一)

初学C#,什么是面向对象?为什么要使用面向对象编程?(一)

面向对象编程的常用方法广告上线泡点直升100级,免费领取召唤

面向对象编程的常用方法广告上线泡点直升100级,免费领取召唤

如何修复被黑客篡改的网站代码与数据库?入侵迹象与范围评估指南

如何修复被黑客篡改的网站代码与数据库?入侵迹象与范围评估指南

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

微信支付SDK漏洞曝光!谁会用到它?商家必看

大会现场蒋涛调查参会者,柳峰解析LBS与智能客服开发重难点?

大会现场蒋涛调查参会者,柳峰解析LBS与智能客服开发重难点?

如何查看php版本?多种方法助你快速知晓

如何查看php版本?多种方法助你快速知晓

PHP格式化:提升代码质量与协作效率的关键规则

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们