我有一个包含14个静态方法和4个静态属性的类 - 那很糟糕吗?

Tow*_*wer 6 php oop object god-object

我一直在编写一个长度恰好为450行的PHP类,它包含14个静态方法和4个静态属性以及6个常量(以及私有__construct()__clone()).

我想知道我做错了什么,是我的阶级邪恶吗?

当您使用该类时,您总是调用一个方法,如:

MyClass::coolMethod();
Run Code Online (Sandbox Code Playgroud)

然后你完全不管它,所以觉得让它可以构建是愚蠢的吗?

从它构造对象真的没什么意义,因为它更像是一个包含一些你可以直接调用的方法的工具.

实际上,在这14种方法中,其中7种是公开的 - 其余的是私人供课堂使用.

Gor*_*don 4

你应该避免static尽可能多的global

静态给你带来了与全局给你同样的缺点。每当您使用任何类方法时,您都会将该类的依赖项硬编码到使用代码中。结果是紧密耦合代码的可维护性较差。通过完全避免静态并严格使用依赖注入,可以轻松避免这种情况。

您不能注入和传递静态类,因此例如当您必须对它们进行单元测试时,您不能模拟它们或者至少只能通过一些努力)。这只是简单的痛苦。静态方法对可测试性来说是致命的。

另外,请记住,类应该只做一件事。他们应该有单一的责任。检查一下你的类,看看里面是否有一些东西最好放在其他地方,以避免编写上帝类。