gpt4 book ai didi

java - 多个构造函数的替代方案

转载 作者:行者123 更新时间:2023-12-01 19:41:30 24 4
gpt4 key购买 nike

我有这个构造函数...

public ShiftLog(String companyName, boolean workedForAgent, String agentName,
Date shiftStart, Date shiftEnd,
boolean breakTaken, Date breakStart,
Date breakEnd, boolean isTransportJob,
String transportCompanyName, String vehicleRegistration) {
this.userUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
this.companyName = companyName;
this.workedForAgent = workedForAgent;
this.agentName = agentName;
this.shiftStart = shiftStart;
this.shiftEnd = shiftEnd;
this.breakTaken = breakTaken;
this.breakStart = breakStart;
this.breakEnd = breakEnd;
this.isTransportJob = isTransportJob;
this.transportCompanyName = transportCompanyName;
this.vehicleRegistration = vehicleRegistration;
}

现在我想添加一个轮类日志(为用户实例化一个轮类日志对象)。问题是轮类日志可以有多种组合。例如,workedForAgent 为 false,则不需要传入 agentName。由于可能存在多种可能的组合,因此如何在不创建多个构造函数的情况下做到这一点?例如,用户可以为代理工作但不能休息,这意味着不需要传入休息开始时间和结束时间。但这将需要为所有可能的组合提供如此多的构造函数。还有其他选择吗?

我还使用房间数据库来附加所有这些信息。因此,如果 workedForAgent 为 false,则自动将 agentName 设置为 null。这怎么可能呢。

最佳答案

看看Builder patterns .

Builder pattern is a creational design pattern it means its solves problem related to object creation.

It typically solve problem in object oriented programming i.e determining what constructor to use.

关于java - 多个构造函数的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55284139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com