1

所以我知道依赖注入的基础知识。我应该将我的依赖项作为方法参数传递,而不是在方法中实例化对象本身。

我想知道这是否也适用于 PHP 附带的类,例如 DateTime 对象或 ReflectionClass 对象?

例如,我正在处理的一个类的方法需要了解传入的对象的属性。我想使用 ReflectionClass 来完成任务,但我认为似乎没有必要传递一个如果类将始终可访问且相对不变(除非 ReflectionClass 随较新的 PHP 版本发生更改),则将 ReflectionClass 对象作为参数。

4

1 回答 1

0

这取决于您的应用程序的设计要求。

如果您知道您的应用程序需要 DateTime 才能使特定方法起作用,请传入 DateTime。如果您需要围绕 DateTime 的自定义功能,请考虑将 DateTime 子类化并发送。

如果您决定在方法签名中使用 PHP 的类型提示,请考虑改用接口,以便发送的任何对象都将履行与接收类的约定。这种方法还可以帮助您的应用程序与将来的 PHP 中的不兼容更改隔离开来。

于 2013-01-25T05:14:07.510 回答