设计具有叶节点所需外部依赖关系的复杂对象创建问题(Java,Spring)。当你有一个复杂的对象并且你需要一些服务来创建对象图的某些部分时,构建这样的对象会有什么好的方法呢?
给定以下用于构建某种报告的功能和类结构,其中LineItem.description需要通过Purchase.key解析(您要显示的常规本地化消息)。
class ReportService {
Report buildReport(Request request, Set<Purchase> purchases) {
... build and return Report with logic based on request and purchases ...
}
}
class Report {
Header header
ReportBody body
}
class ReportBody {
List<LineItem> items
}
class LineItem {
// Locallized escription
String description
}
class Purchase {
String type
String key
}
// Service used to resolve the message.
class MessageSource {
// Return locallized message text found with the given key
String message(String key, Locale locale) { }
}
实施报告构建的优雅方式是什么?
我想到的其他选择:
那你将如何实现呢?还要考虑让它容易进行单元测试。