当类扩展Abstract类时如何实现构建器模式

时间:2019-06-07 12:39:00

标签: java builder-pattern

尝试在其中有一个类Contract扩展抽象类服务输入的情况下实现Builder模式

我已经创建了以下添加的Contract Builder,但没有获得如何访问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);
}

}

1 个答案:

答案 0 :(得分:0)

如@Mauric所建议,能够使用ServiceInput中的方法解决此问题。 在Contract类的构造函数中,我调用了ServiceInput方法来设置userInfo,如下所示:

super.setUserInfo(userInfo);