【发布时间】:2017-12-19 10:21:27
【问题描述】:
这是我遇到的一般问题/问题。我想知道是否有人知道任何非常适合的设计模式或技术。
private ExternalObject personObject;
private String name;
private int age;
private String address;
private String postCode;
public MyBuilderClass(ExternalObject obj)
this.personObject=obj;
build();
}
public build() {
setName(personObject.getName());
setAge(personObject.getAge());
setAddress(personObject.getAddress());
setPostCode(personObject.getPostCode());
.
.
. many more setters
}
上面的类从队列中获取外部对象并构造 MyBuilderClass 对象。
如果所有字段都设置为非空非空值,则成功构建 MyBuilderClass 对象。
将有许多 MyBuilderClass 对象无法构建,因为 ExternalObject 中将缺少数据。
我的问题,检测对象是否正确构建的最佳方法是什么?
- 我可以在 set 方法中检查 null 或空值并抛出异常。这种方法的问题是抛出异常代价高昂,并且会阻塞日志文件,因为会有很多实例无法构建对象;
我还可以使用哪些其他方法?
【问题讨论】:
-
你尝试过Builder模式吗?要么是正确的,要么没有建成
-
@Stultuske 我不是 100% 确定构建器模式如何处理缺少的所需值,即尝试将所需值设置为 null 或空?
-
这取决于你如何实现它。很多公司都断言,如果不是所有强制性信息都存在,那么构建就会失败
标签: java design-patterns object-oriented-analysis