1
私はユニティ依存性注入コンテナについて学んだ、と私はいつもこのようなコードの多くを参照してください。なぜUnityが連鎖を呼び出すのですか?
using (IUnityContainer container = new UnityContainer())
{
container
.RegisterType<IView, Form>()
.RegisterType<IService, Service>(
new InjectionProperty("Logger")
)
.RegisterType<ILogger, ConsoleLogger>()
.RegisterType<ILogger, Logger>("UI")
.RegisterInstance(new TraceSource("UI", SourceLevels.All))
.RegisterType<Presenter>(
new InjectionProperty("Logger",
new ResolvedParameter<ILogger>("UI")
)
);
Presenter presenter = container.Resolve<Presenter>();
//do stuff with presenter
}
私の質問は、なぜ呼び出しが連鎖されていますか? I.なぜ上記は次のように書かれませんでしたか?
using (IUnityContainer container = new UnityContainer())
{
container.RegisterType<IView, Form>();
container.RegisterType<IService, Service>(
new InjectionProperty("Logger")
);
container.RegisterType<ILogger, ConsoleLogger>();
container.RegisterType<ILogger, Logger>("UI");
container.RegisterInstance(new TraceSource("UI", SourceLevels.All));
container.RegisterType<Presenter>(
new InjectionProperty("Logger",
new ResolvedParameter<ILogger>("UI")
)
);
Presenter presenter = container.Resolve<Presenter>();
//do stuff with presenter
}
これは純粋にスタイルですか?
+1。それはノイズを減らす - 第2の例における「コンテナ」は冗長な情報である。 – TrueWill
Ah。したがって、jQueryがその意味でどのように動作するかは、かなり似ています。 –