【发布时间】:2011-12-01 15:39:09
【问题描述】:
我知道关于 OOP 和过程性之间的区别、何时使用其中任何一种以及好处是否超过额外开销、学习语法、继承混淆等方面存在无数问题。我发现的大部分内容往往只是讨论差异和好处,而不是是否有必要。
我通常在同一个站点脚本中混合 OOP 和程序,这取决于我在做什么。我对 OOP 还是很陌生,实际上我很喜欢 OOP 的模块化性质及其带来的好处,即使有一点点开销。不过,继承有时会让人有些困惑!
对我来说,主要的好处似乎只是更好地组织和保护代码。其中,开发人员或开发人员团队是唯一欣赏它的人。我想部署速度是有原因的,但除非你继承了别人的鸟巢,否则不会说大多数网站都有很多部署速度:)
在大多数 PHP 应用程序中是否需要 OOP,尤其是当执行速度是大多数网站的圣杯时?好的,所以毫秒开销不会真正注意到,除非是一个大量使用的网站,但作为电子音乐的粉丝,速度才是王道!
我在游戏和实时云软件等复杂事物中使用 OOP,但是静态网站?甚至是数据库重的?
有没有人有从 OOP 中受益的典型网站的真实示例以及为什么?
假设这两种情况都结构良好,像 ebay 或 monster.co.uk 这样的重度使用网站会从 OOP 或程序 () 的速度改进中受益更多吗?为什么?
至少在程序上,您可以从上到下进行调试,而无需在脚本中反复检查类、扩展和接口。
我不能将 OOP 模块化思维与清晰的 MVC 和注释良好的代码一起应用吗?
例如,我将可重用函数保存在包含文件中,并将相关函数组合在一起。我所要做的就是像包含类文件一样包含文件并调用函数。如果函数需要改变,它只在一个地方改变,类似于一个类。
并且程序中已经存在一种继承,而无需跳过箍来声明它。您没有相同级别的控制,但它可以很好且快速地完成工作。
您甚至可以通过在父函数中分组函数并使用选择器函数来访问它们来模拟一个类。不过,这有点远!
此外,据我所知,当调用函数时,它会保留在内存中,从而使后续使用更快。而对于 OOP,您必须创建不同方法的两个对象才能对两个不同的变量使用相同的函数。如果我错了,请纠正我。
当我可以直接使用程序引用值时,为什么要创建一个对象并使用一种方法来“获取”一个值?
到目前为止做得很好,没有意识到我输入了这么多。无论如何,在我进一步离题之前,我将在这里结束它。
因此,如果您有任何从 OOP 或程序中受益的实际站点或站点部分的良好示例,我将非常感谢您的说明。
【问题讨论】:
-
TL;博士。这不是更适合programmers.stackexchange.com 吗?只是问
-
我最近几天才注意到这个 TL;DR,它已经让我很生气了。如果你不介意阅读它,为什么还要写任何东西呢?
-
虽然你是对的,但更适合programmers.stackexchange.com
-
我认为网络的本质是面向对象的。仅仅因为您不创建类并不意味着您没有使用 OOP。例如,您可以将 DOM 视为 OOP。您有元素的各种属性(颜色、字体等)。您在元素(孩子,父母)之间有关系。我相信,如果您真正了解 Web 编程,它就是 OOP。当然,您可能有程序代码,但您会生成对象。
-
语法约定与应用程序功能或任务无关。 OOP 只是为了更简洁、有时更连贯的代码提供便利;如果使用正确。 (单个 get 方法示例只是一个误用。)
标签: php oop procedural-programming