首页 > 解决方案 > 类扩展抽象类时如何实现构建器模式

问题描述

尝试实现构建器模式,其中我有一个扩展抽象类服务输入的类契约

我已经创建了如下添加的合同生成器,但没有了解如何访问 ServiceInput 的用户信息。

*不能修改 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);
}

}

标签: javabuilder-pattern

解决方案


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

super.setUserInfo(userInfo);

推荐阅读