改进我的NinjectBootstrapper静态类。

时间:2017-08-11 09:22:58

标签: c#-4.0 design-patterns static singleton ninject

已在服务项目中创建NinjectBootstrapper类(负责获取产品)。 这是我的代码

#!/bin/bash

set -o errexit # Exit on error

# Enable script to run from anywhere
cd "$(dirname ${BASH_SOURCE[0]})"

source ./script/main
cd ../..

source ./scripts/test
cd ./packages/applicant/

yarn build

现在,虽然这有效,但我真的想知道是否有更好的方法来重构我的代码。例如,我已经阅读了很多关于使用单例而不是静态类的内容。 我想在这里真正树立一个良好的基础,使未来的开发人员能够轻松灵活地扩展功能。我可以考虑哪些好的指示和提示?

1 个答案:

答案 0 :(得分:0)

  

我已经阅读了很多关于使用单例而不是静态类的内容。

在应用DI时,我们通常更喜欢实例类而不是静态类,因为我们不能在静态类中练习 Constructor Injection 。然而,这并不意味着静态类是一种不好的做法。当类没有依赖关系且没有状态时,static没问题。

这也适用于启动路径中的代码,例如NinjectBootstrapper。你可以把它变成一个实例类,但是因为这个类是在启动时直接启动的,所以不需要注入依赖项(显然,因为它是连接DI容器的东西),将它作为实例类通常是没用的。