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种是公开的 - 其余的是私人供课堂使用.
你应该避免static
尽可能多的global
。
静态给你带来了与全局给你同样的缺点。每当您使用任何类方法时,您都会将该类的依赖项硬编码到使用代码中。结果是紧密耦合代码的可维护性较差。通过完全避免静态并严格使用依赖注入,可以轻松避免这种情况。
您不能注入和传递静态类,因此例如当您必须对它们进行单元测试时,您不能模拟它们(或者至少只能通过一些努力)。这只是简单的痛苦。静态方法对可测试性来说是致命的。
另外,请记住,类应该只做一件事。他们应该有单一的责任。检查一下你的类,看看里面是否有一些东西最好放在其他地方,以避免编写上帝类。