我为什么要开始在PHP中编写面向对象的代码?

时间:2012-02-26 09:40:38

标签: php oop

我已经使用常规PHP一段时间了。我的正式代码培训为零。无论我学到了什么,我都可以在PHP文档站点上找到MySQL文档等。

我从头开始编写PHP。我将函数用于重新发生的任务,我使用MVC编写更易于维护的代码,最近我用一些函数编写了一个很好的小库,这样我就可以节省未来项目的时间。长话短说,不是某种大师,我与PHP有着良好的关系,到目前为止,它似乎已经为我完成了。

所以我的问题如下:为什么我要开始在PHP中编写面向对象的代码?它将如何使我的编程生活更好,为什么它比传统的做事方式更好?

5 个答案:

答案 0 :(得分:9)

OOP旨在使编程语言更类似于现实生活。

这是什么意思?

我们生活在一个物体的世界里。您是一个对象(Person),您居住在一个对象House中,House个对象(以及任何其他House个对象)都有一个House::$addressHouse::$number,您的房子可能包含其他对象,例如LivingRoomKitchenKitchen可以保留OvenStove以及Refrigerator,这些都是KitchenAppliance对象的扩展。

OOP编程采用这种方法,并将其融入编程世界。

它对我有什么帮助?

嗯,有几件事:

  • 它使您的代码更易于维护。如果您将数据库连接视为对象(意味着可以有多个数据库连接),则可以将程序划分为任务(函数),而不是将其划分为对象。 ,他们共享方法属性,但每个都在不同的实例上执行),这使它更容易理解和维护。
  • 它使您的代码更具可读性。您使用class decleration定义一个对象,然后使用new ClassName()关键字调用它。
  • 它允许可扩展性和灵活性。就像KitchenAppliance可以扩展到OvenStove一样,您的对象和类也可以。

摘要

OOP编程具有许多优点。它需要稍微不同的思维方式,但最终,它是值得的。

答案 1 :(得分:3)

当然,您可以在不使用OOP的情况下编写代码,并尝试在不使用单个对象的情况下实现MVC等设计/模式。

我不想回答为什么要在OOP中编程。这可以在例如on this Stack Overflow question

我想您想知道您何时以及为何会因编码行为而失败:

  • 这是在您尝试与他人一起工作的那一刻。其他程序员永远不会发现您的代码可读。他需要很长时间才能理解你的软件是如何运作的。
  • 我认为团队合作在您的代码中分离任务很难。您的文件是如何分开的,命名约定如何?您必须自己解决这个问题,不要重复使用每个已知的模式。
  • 你在做什么与第三方的东西?你如何整合它们?没有使用OOP架构,我不知道任何可用的库...

还有许多问题肯定有可能解决,但每次你失去了其他人理解你的代码并在其他程序中重用它的可能性......

答案 2 :(得分:3)

你收到了很多全面的答案,所以我将使用一个论点:设计模式。 (http://en.wikipedia.org/wiki/Software_design_pattern)。

您可以找到公共问题解决方案的音调,这可以节省您的时间并提高代码质量。

一些设计模式示例:

弗兰基说,如果你想更好地了解OOP,你必须:

  1. 了解或了解常见的设计模式。
  2. 开始使用单元测试,你会发现缺乏依赖注入可能是糟糕架构的真正痛苦。
  3. 学习并理解OOP原则,例如SOLID http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29
  4. 如果没有这个,你将使用封装在classess中的函数,比如命名空间,而不是OOP。

答案 3 :(得分:2)

一个词:凝聚力

当您开始使用对象开发软件时(特别是当这些对象使用Dependency Injection时)时,您会发现常见功能开始被吸引到他们自己专用的类中,这些类被重用。这使得维护和增强软件MUCH更容易,并产生更高质量的软件。

示例:

许多应用程序使用会话来存储各种东西。当所有会话数据由专门的会话管理器类管理时,负责处理会话的所有代码都保存在一个地方。如果您想要更改应用程序使用会话数据的方式(可能是为了使其更安全或更高效),您只需要在一个地方更改代码。

三个月前我跳转到OOP PHP,这是我做过的最好的事情之一。

我从PHP Object-Orientated Solutions开始,刚刚完成Real-world Solutions for Developing High-quality PHP Frameworks and Applications。这两本书对我帮助很大,我强烈推荐它们。

学习曲线非常高。但我保证,你会很高兴你转向OOP。

答案 4 :(得分:0)

使用OO,您可以更快,更清洁地开发应用程序。您可以轻松地重用您的extisting类并扩展它们(减少您的代码库)。

使用OO设计,您只需要在任何时候处理小块代码,而不是在具有3000多行代码的文件中处理功能。你也应该照看 SOLID guidelines