Java 如何在构建期间处理依赖关系
我相信这是一部经典之作,应该有一个设计模式,但除了依赖模式和德米特定律之外,我真的看不到全局: 要拥有一个良好的可测试且灵活的应用程序,我希望:Java 如何在构建期间处理依赖关系,java,Java,我相信这是一部经典之作,应该有一个设计模式,但除了依赖模式和德米特定律之外,我真的看不到全局: 要拥有一个良好的可测试且灵活的应用程序,我希望: 在施工期间,只需在我的应用程序中输入一个条目 将配置加载/解析一次并移交到此入口点 让此入口点实例化和配置所有依赖项,然后将其编排到体系结构中 然后让一切进入运行时 约束条件: 尽可能少的单身,最好不要 只有入口点知道配置,所以很容易测试依赖项 一切(所有依赖项)都应该易于测试 尽可能少的仅用于测试的暴露方法 (不起作用)例如: 我的问题:模板是什
- 尽可能少的单身,最好不要
- 只有入口点知道配置,所以很容易测试依赖项
- 一切(所有依赖项)都应该易于测试
- 尽可能少的仅用于测试的暴露方法
我的问题:模板是什么样的?您能定义构建时间吗?构建时间是应用程序启动的初始时刻(例如从命令行),直到所有依赖项/实例完全初始化,系统可以操作/接受请求/…@fge请提供一个工作示例。
// Main entrypoint
public App(Config config) {
Dep1 dep1 = new Dep1(config.getDep1Conf());
Dep2 dep2 = new Dep2(config.getDep2Conf());
Dep3 dep3 = new Dep3(config.getDep3Conf());
Dep4 dep4 = new Dep4(config.getDep4Conf());
:
this(dep1, dep2, dep3, dep4);
}
// Entry point for easy testing
public App(Dep1 dep1, Dep2 dep2, Dep3 dep3, Dep4 dep4) {
this.dep5 = Dep1.newInstance(Dep2);
this.dep3 = dep3;
this.dep4 = dep4;
:
}