【发布时间】:2019-06-07 12:39:00
【问题描述】:
尝试实现构建器模式,其中我有一个扩展抽象类服务输入的类契约
我已经创建了如下添加的合同生成器,但不知道如何访问 ServiceInput 的 userInfo。
*不能修改 ServiceInput 类,因为它来自不同的模块。
public class Contract extends ServiceInput{
String name;
..
}
public abstract class ServiceInput{
private UserInfo userInfo;
//getter
//setter
..
}
public class ContractBuilder{
String name;
public ContractBuilderwith(
Consumer<ContractBuilder> builderFunction) {
builderFunction.accept(this);
return this;
}
public Contract createContract() {
return new Contract(name);
}
}
【问题讨论】:
-
也许你可以有一个抽象的 ServiceInputBuilder,负责设置 ServiceInput 特定的属性,ContractBuilder 会扩展它?
-
要从你的builder中设置
userInfo,你必须使用ServiceInput提供的方法和/或构造函数。
标签: java builder-pattern