代码之家  ›  专栏  ›  技术社区  ›  Chuck Burgess

OO设计模式与PHP中的Web开发有多大关系?

  •  8
  • Chuck Burgess  · 技术社区  · 14 年前

    singleton、decorator、abstract、factory和list继续。在为Web开发PHP应用程序时,OO设计模式的相关性如何?它对性能有帮助吗?或者仅仅是为了保持敏捷开发实践的代码精益?谁是实现这些设计模式的主要赞助者?是客户还是开发商?

    我意识到我问了很多问题,但它们都与同一个主题有关。我不确定是否需要使用脚本语言进行OO设计模式,因为它是在运行时编译的。你们都觉得怎么样?重要吗?

    5 回复  |  直到 12 年前
        1
  •  10
  •   tvanfosson    14 年前

    创建设计模式是为了解决特定的问题。无论您使用PHP还是任何其他语言,都会出现这些问题(尽管模式可能因语言而异)。大多数模式都源于面向对象的设计,但可以适应过程设置。当您遇到模式解决的问题(无论是PHP还是任何其他语言)时,请使用设计模式。不要仅仅因为它是一个“设计模式”就使用一个设计模式——知道它是如何应用的,何时应用,何时不应用。

    尽管如此,设计模式所做的大部分工作都是以一种干净、可理解的方式组织代码来实现它们的目的。还有其他方法可以解决这个问题,但是设计模式是一种公认的、清晰的、可理解的方法。如果您确实需要解决某个特定模式所解决的问题,那么通常最好使用该模式(或调整该模式),而不是选择一个替代方案。

    因此,在适当的情况下,使用模式对当前和未来的开发人员(更清洁、更易于理解的代码)和客户(客户)都是有益的,这样可以减少重新设计轮子的时间,使代码更健壮、更可维护。当模式不合适的时候使用模式对任何人都没有好处;这可能是一种沮丧的练习,试图调整模式来解决一个无关的问题,而不仅仅是使事情变得更复杂。

        2
  •  3
  •   schematic    14 年前

    在为Web开发PHP应用程序时,OO设计模式的相关性如何?

    IMO它们与任何非平凡的PHP应用程序都非常相关,只要您使用的模式适用于手头的问题。

    它对性能有帮助吗?

    不一定,你可以从积极和消极两方面考虑。大多数流行的设计模式不会直接增加任何积极的性能优势,而一些施加更多继承或类结构的模式可能会增加 可以忽略不计的 性能成本(我强调可以忽略不计)。如果适用的话,使用众所周知的模式的好处超过了这些可以忽略不计的成本。

    我能想到的一个例子是,在哪一个模式可以直接提高“性能”(关于内存使用)将是对单例模式的适当使用。如果您在任何给定的时间确实只需要一个对象实例,那么您可以使用该实例来最小化内存使用。

    或者仅仅是为了保持敏捷开发实践的代码精益?

    我会说,正确使用模式可以使代码更易于维护,而不是“精简”。这将促进任何开发周期,包括敏捷,因为使用知名模式的代码更容易阅读。

    谁是实现这些设计模式的主要赞助者?是客户还是开发商?

    主要是开发人员(特别是当开发人员是一个多个开发人员时,团队有权查看相同的代码。)这对客户有间接的影响,因为编写良好的代码明显会有较少的错误,而使用模式的软件可能会有较少的周转时间从重新发明轮子。

        3
  •  1
  •   Justin Ethier    14 年前

    是的,但是您必须为平台选择正确的模式。到目前为止,最重要的OO设计模式是MVC(模型视图控制器),所有主要框架(cakephp、codeigner等)都使用MVC。

        4
  •  1
  •   Anthony Forloney    14 年前

    使用OOP方法与非OOP方法可能在 performance ,非OOP为 一点 更快,但差异几乎可以忽略不计。

    我认为OO设计模式对代码组织是有益的,但是设计问题由您来决定。我认为你会比用户受益更多。无论您使用OOP还是非OOP,用户都可以看到相同的结果。

        5
  •  0
  •   mip    14 年前

    什么算法(如Quicksort)是程序化编程,设计模式是面向对象的设计。它们被证明是解决一些常见问题的有效方法。

    主要赞助者是一个奉献者,但作为副作用,客户可能会获得更好的最终产品。

    无论它们是否相关,都取决于您选择的特定应用程序需求和方法。它听起来可能简洁,但当您开始分析应用程序并将其设计要求与现有模式进行比较时,您将知道如何以及何时使用它们。