java 参数初始化_java-如何使用未知数量的String参数初始化类...

我正在研究API,该API应该提供对许多基于远程Web服务的资源的简单访问.

其中一些远程资源需要在交互之前传递特殊参数.例如,其中一个需要传递一对开发人员的密钥,另一个则需要一对密钥和唯一的标识符.第三者根本不需要这些参数.我正在使用3个服务,但可以增加数量.

对于每个Web服务,我都有相应的API实现.问题是我不知道如何向我的API引入传递未知数量的含义未知的字符串的可能性.

我的一些建议:

1.

ServiceFactory.createService (ServiceEnum type, Properties keys);

2.

ServiceFactory.createService (ServiceEnum type, ServiceParams params);

其中ServiceParams是标记接口.在这种情况下,我将有一些像这样的帮助器类:

public class ServiceHelper {

public static ServiceParams createFirstServiceParams (String secretKey, String publicKey);

public static ServiceParams createSecondServiceParams (String secretKey, String publicKey, String uid);

public static ServiceParams createThirdServiceParams ();

}

优点:每个服务的有意义的参数名称.

缺点:如果我提供第四项服务的支持,则用户将不得不更新工厂模块.在第一种情况下,用户仅需下载新模块.

3.

ServiceFactory.createService (ServiceEnum type, String ... params);

优点:最易于使用.用户不需要执行任何其他操作(例如,创建ServiceParams的属性).

缺点:最明显的方法.用户应该知道哪组参数与他要创建的服务相对应.

4-6:

相同的变体,但参数不是传递给工厂方法,而是传递给Service实例(例如,在其init()方法中).

优点:用户可以根据需要更改其服务的密钥,而无需创建相同服务的新实例.

缺点:更复杂的方式,利润是可疑的.

您喜欢哪种变体?为什么?欢迎您的变体.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值