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() 
    { 

    } 
    } 

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

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

답변

1

속성 주입 이외의 두 패턴에는 효과가 거의 없으므로 구현을 간단한 속성 집합으로 바꿀 수 있습니다. 생성자 삽입을 사용하면 런타임에 구현을 바꾸는 사람이 필요 없으므로 (대개) 새 LoginController를 만들어야합니다.

+0

예, 속성 삽입을 사용하면 이미 생성 된 객체에서 논리 대체가 가능합니다 , 그러나 동시에 Property Injection의 단점이 될 수 있습니다. 나는 장점을 찾고 있어요 :) – Ruslan

관련 문제