[英]Loosely coupled dependencies: How?
如何最好地分离两个类,但仍然使它们彼此依赖?
我有带有类型提示的构造函数参数:
public function __construct(\namespace\Interface1 $class1,
\namespace\Interface2 $class2,
\other\namespace\Abstract1 $class3){
但这与说的话紧密相关吗?
new \namespace\Class1();
任何其他方法都欢迎。
使用接口意味着您与实现分离。
您必须至少与某些组件耦合才能使用其他组件(即依赖项)。 问题是如何最小化这种耦合:
最后,那就是选择涉及较少耦合的解决方案。
一种替代方法是使用事件:您的类可以引发事件,并让依赖项侦听这些事件。 这样,您的类仅耦合到EventManager的接口。
但是事件解决方案并不能真正适合所有用例:您不能保证有人实际注册了该事件,并且实际上对该事件做了任何事情。 而且,您无法像调用方法一样获得返回的结果。
结论:使用像您一样的界面是好的,这里没有问题。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.