OOP的实际用途

yre*_*uta 9 oop paradigms

我最近与一位不是OOP粉丝的同事进行过辩论.引起我注意的是他说的话:

"在对象中进行编码有什么意义?如果它被重用,那么我就可以创建一个库,并调用我手头所需的任何函数.我是否需要这些多态,继承,接口,模式等概念? "

我们是一家小公司,为电子商务网站和房地产开发小型项目.

如何在"日常,真实世界"的设置中利用OOP?或者OOP真的意味着解决复杂问题而不是用于"日常"开发吗?

And*_*rsK 8

我个人认为:背景

在OOP中编程时,您可以更好地了解上下文.它可以帮助您以更容易理解的方式组织代码,因为现实世界也是面向对象的.

  • 我不认为OOP就像现实生活一样.我认为这是一种简化和抽象现实生活的尝试,其概念足以让我们理解和操纵.考虑在OOP中准确建模一件简单的事情,就像"在一张纸上写笔". (3认同)
  • 对,就是这样.人类创造物体作为自然的模型.OOP更像是现实生活;*东西*是分开的. (2认同)

dao*_*oad 8

关于OOP的好处来自于将一组数据绑定到一组行为.

因此,如果您需要对相关数据集执行许多相关操作,则可以编写许多在结构上运行的函数,或者可以使用对象.

对象以继承的形式为您提供一些代码重用帮助.

IME,使用具有已知属性和方法集的对象更容易,它保留一组复杂的结构和对它们起作用的函数.

有些人会继续谈论继承和多态性.这些都是有价值的,但OOP中的真正价值(在我看来)来自它封装并将数据与行为相关联的好方法.

你应该在你的项目上使用OOP吗?这取决于您的语言支持OOP的程度.这取决于您需要解决的问题类型.

但是,如果你正在做小型网站,你仍然在谈论足够的复杂性,我会使用OOP设计给予开发语言的适当支持.

  • 语法糖可能非常有营养。我们在高级语言中所做的一切都是在汇编程序之上加糖。每当我不得不使用汇编语言工作时,我都会非常非常想念那糖。因此,我发现很难将任何能提高生产率的语言结构都视为“只是语法糖”。IMO,任何至少不了解编程的三种主要样式(命令式,功能性和OOP)的软件开发人员都必须精打细算。理解这些方法将为有效分解各种语言或范例问题提供关键的概念。 (2认同)

Mur*_*ali 6

不仅仅是为了工作 - 朋友的观点,设计精良的OO设计更容易理解,遵循,扩展,扩展和实施.例如,委托明确相似的工作或保存应该保持在一起的数据(即使C结构是一个对象)也是如此.


wad*_*rld 5

好吧,我相信很多人会给出更多学术上正确的答案,但这是我对一些最有价值的优势的看法:

  • OOP允许更好的封装
  • OOP允许程序员以更合理的方式思考,使软件项目更容易设计和理解(如果设计得很好)
  • OOP节省时间.例如,看看你可以用C++字符串对象,向量等做的事情.所有这些功能(以及更多)都是为了"免费".现在,这些都是类库的特性而不是OOP本身,但几乎所有的OOP实现都带有很好的类库.你能用C(或大部分)实现所有这些东西吗?当然.但为什么要自己写呢?