[英]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.