首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么使面向对象的编程成功?

是什么使面向对象的编程成功?
EN

Software Engineering用户
提问于 2010-11-02 05:58:06
回答 11查看 3.6K关注 0票数 17

根据您的观点,使面向对象编程如此成功的特性是什么?

  1. 讯息传递
  2. 继承
  3. 多态
  4. 封装

或者您可能想要介绍的其他特性。

另外,我想知道抽象数据类型和面向对象编程之间的联系是什么?

EN

回答 11

Software Engineering用户

回答已采纳

发布于 2010-11-02 06:38:37

我认为面向对象编程最重要的特点是复杂性管理。

人类的大脑一次只能容纳这么多的概念--记忆7+/-2项的引用限制出现在脑海中。

当我在工作中使用600 head系统的时候,我不能马上把所有的事情都记在脑子里。如果我必须这样做,我将被限制在小得多的系统上工作。

幸运的是我没必要这么做。我们在该项目中使用的各种设计模式和其他结构意味着,我不需要立即处理整个系统--我可以拿起各个部件,并对它们进行处理,知道它们以定义明确的方式适合更广泛的应用。

所有重要的面向对象概念都提供了管理复杂性的方法。

封装-让我来处理一个为我提供各种服务的外部API,而不必担心这些服务是如何实现的。

抽象--让我把注意力集中在本质特征上,忽略不相关的内容。

组合-让我重用已经在新的组合中构建的组件。

多态--让我请求一个服务,而不必担心不同的对象如何以不同的方式提供服务。

继承--让我重用一个接口或一个实现,只提供与以前不同的部分。

单一责任原则--让每个对象的目的保持清晰和简洁,这样就很容易对

Liskov替换王子-让我们不要通过引入奇怪的依赖关系来为彼此设置陷阱

开放/封闭原则-让我们允许扩展和修改的方式不需要我们冒险破坏现有的代码

依赖注入-让我们将组合提升到下一个级别,并在很久之后将组件组装在一起。

面向接口的开发--让我们把抽象带到下一个层次,只依赖抽象,而不是具体的实现。

票数 76
EN

Software Engineering用户

发布于 2010-11-02 21:20:40

图形用户界面。20世纪80年代末90年代初,当Mac、Amigas、Atari STs、Windows和GEM开始取代基于字符的用户界面时,像C这样的语言显然不适合编写GUI程序。虽然传统的数据处理被认为是“输入数据->处理->输出数据”模式(同样也可以用过程语言完成),但OOs特性很容易处理GUI的固有复杂性。

票数 13
EN

Software Engineering用户

发布于 2010-11-02 06:10:53

封装提供的数据隐藏。

票数 7
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/16189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档