下面是我的界面 -
public interface IClient {
public String executeSync(ClientInput input);
}
这是我的接口实现 -
public class TestingClient implements IClient {
@Override
public String executeSync(ClientInput input) {
}
}
现在我有一个工厂,它得到这样的实例TestingClient
-
IClient client = TestingClientFactory.getInstance();
现在客户将调用executeSync
myTestingClient
接受ClientInput
参数的方法,下面是ClientInput
.
public final class ClientInput {
private Long userid;
private Long clientid;
private Long timeout = 20L;
private boolean debug;
private Map<String, String> parameterMap;
public ClientInput(Long userid, Long clientid, Map<String, String> parameterMap, Long timeout, boolean debug) {
this.userid = userid;
this.clientid = clientid;
this.parameterMap = parameterMap;
this.timeout = timeout;
this.debug = debug;
}
... //getters here
}
所以当客户调用我们的executeSync
方法时TestingClient
,他们会ClientInput
像这样创建参数,然后使用工厂获取实例,TestingClient
然后相应地调用executeSync方法。
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("attribute", "segmentation");
ClientInput input = new ClientInput(109739281L, 20L, paramMap, 1000L, true);
IClient client = TestingClientFactory.getInstance();
client.executeSync(input);
问题陈述:-
- 如上所示,这是制作
ClientInput
参数并传递给方法的正确方法吗?executeSync
- 我的 ClientInput 中已经有三个 Long 类型的参数,其他开发人员可能不清楚哪个位置是哪个字段(尤其是在那些漫长的夜晚......)。任何想法如何避免这种情况?
- 如果需要更多输入,它会使构造函数声明更长。我该如何克服这种情况?