我已经开始使用Ninject,并从截屏视频中说明以下是如何设置绑定:
class MyModule : StandardModule {
public override void Load() {
Bind<IInterface>().To<ConcreteType>();
// More bindings here...
}
}
这一切都非常好。
但是假设您在应用程序中使用了一百个对象。这意味着这将有一百个绑定。这是对的吗?
其次,我认为在给定这样的应用程序的情况下,它可能会分为GUI,数据库,服务等子系统。
然后,您是否会为每个子系统创建一个自定义模块,而后者将是:
对于每个模块,您都拥有所需的正确绑定。我在右边的页面上吗?
最后这个绑定会发生在Main
还是应用程序的入口点?
答案 0 :(得分:4)
但是假设你有一百个 应用程序中使用的对象。那 意味着这将有一百个 绑定。这是对的吗?
一百个注册组件,是的,但不一定是逐个注册的。有一个Convention extension for Ninject允许您根据一些已定义的规则扫描程序集和注册类型。请参阅this test作为示例。
然后你会创建一个自定义模块吗? 对于每个子系统
同样,不一定。您可能只想在单个约定注册中注册所有存储库(仅用于命名)。
对于每个模块,你都有正确的 他们需要的绑定。
与任何“模块”(无论是汇编,类,应用程序)一样,coupling and cohesion的概念也适用于此。最好的做法是保持低耦合(不要太依赖其他模块)和高内聚(模块中的所有组件必须达到共同目标)
最后这种绑定都会发生 在Main或您的入口点 应用
是的,请参阅this related question。