0

可能重複:
Dependency injection through constructors or property setters?與構造器注入相比,屬性注入有什麼優勢嗎?

我珍玩如果物業注射構造器注入有什麼優點:

public class LoginController : Controller 
    { 
    [Inject] 
    public ICookiesManager CookiesManager {get; set;} 

    [Inject] 
    public ISecurityManager SecurityManager {get; set;} 

    public LoginController() 
    { 

    } 
    } 

VS

public class LoginController : Controller 
    { 
    private ICookiesManager _cookiesManager; 
    private ISecurityManager _securityManager; 

    public LoginController(ICookiesManager cookiesManager, ISecurityManager securityManager) 
    { 
     _securityManager = securityManager; 
     _cookiesManager = cookiesManager; 
    } 
    } 

回答

1

除了使用屬性注入之外,兩種模式之間的差異很小,您可以用簡單的屬性集替換實現。通過構造函數注入,它更加明確(通常),您不希望任何人在運行時替換實現(因爲這樣做需要創建新的LoginController。)

+0

是的,屬性注入允許替換已創建的對象中的邏輯,但這可能是同時注入物業的一個缺點。我在尋找優勢:) – Ruslan

相關問題