0

重複の可能性:
コンストラクターまたはプロパティ セッターによる依存性注入?

プロパティ注入がコンストラクター注入よりも利点があるかどうか、私は興味があります:

  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;
    }
  }
4

1 に答える 1

1

2 つのパターンには、プロパティ インジェクション以外の効果的な違いはほとんどありません。実装を単純なプロパティ セットに置き換えることができます。コンストラクター注入を使用すると、(通常は) 実行時に実装を誰かに置き換えてほしくないことがより明確になります (そうすると、新しい LoginController を作成する必要があるため)。

于 2012-05-06T14:06:00.987 に答える