3

在大多数关于 OOP 的讨论中,都说优点是可重用性。您投入了一些额外的工作来定义您的类,它可以节省您以后创建这些对象的许多实例和扩展的时间。

一个推论似乎是,在将所有内容写入对象的权衡等于您将节省的时间之前,您不应该从过程编程切换到 OOP 编程。

一般来说,什么时候是从过程编程切换到 OOP 编程的好时机?您通常会寻找任何迹象/特征来了解您的项目需要进行转换吗?

4

7 回答 7

4

我假设这个问题是从初学者的角度/范式出发的。一旦程序员有编写面向对象代码的经验,您当然可以使用这种架构从一开始就创作一个项目。事实上,我认为自上而下的方法可以为您在大型项目上节省大量时间。

但是,对于您概述的自下而上的场景,我会说您必须自己去感受。一般而言,请参阅维基百科文章以获取有关不同方法的更多信息。

具体到 PHP,我想说您可以使用这种方法进行迁移:

  1. 尽可能多地获取代码(即:相关函数)并将它们放入包含文件中。
  2. 为该文件创建一个容器类。您可以通过以静态方式调用它们,甚至使用静态(单例)类来开始使用所有函数。
  3. 逐渐转换为实例范式,而不是全局数据/静态函数,这是过程编程的缺点。

这个过程是了解 OO 细节的好方法,最终你会看到好处。它还将告诉您我的初始观点:将某些东西转换为 OO 比从一开始就具有良好(高阶)设计的表面所花费的时间要长得多。

于 2010-12-13T22:36:26.473 回答
3

如果这不是一个非常简单的应用程序,那么现在是时候了。实际上,您应该始终对 OOly 进行编程是有争议的,因为将来要扩展程序时会更加困难。

于 2010-12-13T22:35:30.807 回答
1

我认为这取决于上下文。对于使用现有 OOP 框架的图形应用程序,权衡是即时的——在某些情况下,您必须不遗余力地编写过程 GUI 代码。

但是,如果您正在处理原始数据并且不与任何 OOP 框架进行互操作,那么您可能会发现 OOP 永远没有意义。

于 2010-12-13T22:36:39.910 回答
1

将项目切换到 OOP 可能非常耗时。我怀疑它是否会有利可图,因为它需要大量的编码、大量的测试以及大量的重构。OOP 的整个概念与 PP 不同。

所以我建议不要在项目内切换,而是尽快开始在新项目中使用 OOP。当您感到舒适时,您可以开始为现有项目考虑 OOP 设计,并逐步在 OOP 中实现功能。但是,这将是很多工作,并且可能感觉就像重写整个项目。

于 2010-12-13T22:37:42.073 回答
0

这取决于任务,但是两者都完成了,这就是我的想法:

  1. 你觉得这项工作需要模块化吗?从一个中心位置管理相似或不同事物的能力?有很多重复的元素吗?快速开发或管理变更是否重要?

  2. 你觉得你要解决的问题是可预测的和重复的吗?通过以下步骤解决或通过应用算法最好地完成任务?

如果更像 1,则采用 OOP,否则,如果更像 2,则采用过程方法。

如有疑问,请使用您喜欢的。

于 2010-12-13T22:48:22.507 回答
0

我会在别处寻找你需要转换的迹象。对于所有的炒作——而且我是 OOP 的大力支持者——代码重用通常只在 OOP 语言中稍微好一点。

OOP 是另一个简单的工具,可以帮助您组织代码,就像过去的函数一样。这是一个伟大而有用的工具。但主要的好处是更容易编写和维护你的代码。

如果是我,并且迁移到 OOP 几乎需要完全重写,我会推迟到转换的更多实质性好处变得明显。如果您的代码有效,我不知道您为什么要重写它。

于 2010-12-13T22:39:46.903 回答
0

改变正在进行的项目的编程风格很少是一件好事。

如果您希望实体之间有更明确的责任,您始终可以将 OO 原则应用于程序代码。

例如,查看这本非常有趣的关于 ANSI-C OO 编码的书

于 2010-12-13T22:55:32.850 回答