2010-02-23 58 views
3

我已經開始與Ninject並從中指出下面一個截屏玩是你如何建立一個綁定:Ninject模塊或組織接線,依賴

class MyModule : StandardModule { 

    public override void Load() { 
     Bind<IInterface>().To<ConcreteType>(); 
     // More bindings here... 
    } 
} 

這是非常好的。

但是,假設您有一百個對象在應用程序中使用。這意味着這將有一百個綁定。它是否正確?其次,我認爲給定這樣一個應用程序,它可能會被分割成子系統,如GUI,數據庫,服務等等。

你再爲每個子系統中的自定義模塊這反過來將是:

  • GUIModule
  • DatabaseModule
  • ServiceModule
  • ...

對於每個模塊你會得到他們需要的正確綁定。我在這裏的正確頁面?

最後會發生這種綁定全部發生在Main或您的應用程序的入口點?

回答

4

但是,假設您有一百個 對象在應用程序中使用。那 意味着這將有一百個 綁定。它是否正確?

一百註冊組件,是的,但不一定一一註冊。有一個Convention extension for Ninject,它允許您根據一些定義的規則掃描程序集和註冊類型。以this test爲例。

你再創建一個自定義模塊 每個子系統

同樣,不一定。您可能只想在單一的會議註冊中註冊所有的存儲庫(只是爲了命名)。

對於每個模塊,您將擁有他們需要的正確的 綁定。

對於任何「模塊」(無論是裝配,類,應用),coupling and cohesion的概念也適用於此處。這是保持耦合低的最佳實踐(不依賴於其他模塊太多)和凝聚力高(一個模塊內的所有部件必須爲實現一個共同的目標)

最後將這種結合在主要或全部發生 您的 應用程序的入口點?

是的,請參閱this related question