【问题标题】:One long class or many shorter classes?一堂长课还是多堂短课?
【发布时间】:2010-12-31 09:43:21
【问题描述】:

在 PHP 中,使用一个包含很多函数的长类对性能有影响吗?还是建议使用许多小类并在需要时单独调用它们?

我是 OOPS 的新手,请忽略问题中的任何愚蠢。谢谢。

【问题讨论】:

  • 这会很有帮助*.com/questions/1959295/…
  • 我认为应该进行全校范围的投票,看看我们能得出多少百分比。不仅如此,还要计算统计数据会在执行任何操作之前出现。好吧,这只是我的观点(:

标签: php oop class


【解决方案1】:

建议在获得代码之前不要考虑性能。从可维护性和可理解性的角度来看,当然,较小的类和较小的方法是优越的。 (见The Single Responsibility Principle

当您需要优化时,您确实可以(自动)将所有代码组装到一个大文件中,并在 include-s 上节省一些时间。

【讨论】:

    【解决方案2】:

    首先,考虑干净的 OOP 设计。

    包含很多方法和属性的很长的类很难理解。

    一组精心设计的类,具有有意义的类名、方法名和变量名,非常容易理解,尤其是在维护期间。

    【讨论】:

      【解决方案3】:

      一般来说,人们倾向于创建太大而复杂的类——这是因为通常很难看出内聚边界在哪里。因此,当您刚开始并且有点不确定时,最好将它们设置得太小:您总是可以将较小的类合并为一个较大的类……将一个大类重构为几个小类通常要困难得多那些。

      【讨论】:

        【解决方案4】:

        您可以并且应该将事物放在同一个类中,只要它们与您正在创建的类的逻辑直接相关。如果您遵循 OOP 概念,那么班级的规模并不重要。

        【讨论】:

          【解决方案5】:

          就我个人而言,我更愿意根据它们的用途将这些类分解成更小的文件。如果那是业务对象,那么我更喜欢使用 'customer.class.php' 'account.class.php' 等。

          在我参与过的大多数项目中,它都是这样的,然后是一个更大的“lib”或“common”文件,其中包含许多在各处使用的各种函数。

          【讨论】:

            【解决方案6】:

            为了记录,大小不是一个类中要考虑的重要部分。类的关键是类的依赖关系。

            例如,依赖于数据库的一个类应该被分隔在一个特殊的类中,例如 Repository / Dao / Dal / Persistence 类。

            【讨论】: