|
|
1
4
这里是一个多世界的最佳实现。
通过这个实现,客户机可以讨论
关于不使用的唯一原因
|
|
2
10
我会坚持用
|
|
|
3
4
我觉得很好。正如其他人所说的,
更妙的是:在他们的GWT框架中,Google在他们的示例中使用了同样的思想来进行无效的返回回调。( example here )我说:如果谷歌做到了,那肯定至少还可以。:) |
|
|
4
3
这不是一个常见的问题。您需要解决的问题是对接口的期望。您将非副作用接口的行为与允许副作用的接口结合起来。 考虑一下:
使用没有什么问题
当我们使用集合类传递数据集时,我的团队同意 从未 即使在语法上很好,也返回空值。问题在于,使用返回值的类必须经常检查是否存在空值,以防止出现NPE。使用上面的代码,您可以在任何地方看到:
因为现在有了一种方法来知道实现实际上是有对象还是为空。对于一个特定的案例,您肯定会知道,因为您熟悉这个实现。但是,一旦您开始聚合它们或者它们超过了您的编码范围(用作库、将来的维护等),空问题就会出现。 接下来,我尝试了:
重载不起作用,因为对reportresults的第二个调用仍然调用了需要对象的版本(当然)。我打算改成
但这说明了问题的根源,您的客户机代码开始了解实现的细节。接口应该在可能的时候帮助隔离代码依赖性。在这一点上添加它们似乎是不好的设计。 最重要的一点是,您需要使用一种设计,当您希望某个命令产生副作用时,它会清楚地表明您希望如何处理一组命令,即一组未知命令。 这可能是 leaky abstractions . |
|
|
5
3
保持接口原样:这就是标准库中void的原因。只要调用命令的对象希望空值返回。 是的,空值是唯一可以为void返回的值。 更新2017
在过去的几年里,我一直避免
|
|
|
6
2
您的示例中有趣的是参数化类型的使用。通常你会
在你的情况下,你只有
|
|
7
1
那 问题 不是 那个 很普通,但不是很罕见…我想我已经看到一段时间前关于这个的讨论了,关于什么都不返回的可调用文件。 我同意其他海报的观点,这是一个很好的解决方案,比使用对象或其他虚拟占位符要好得多。 |
|
|
8
-1
如果没有像这样的接口怎么办:
相反,你有:
然后打电话的人会这样做:
如果愿意,还可以创建一个扩展命令的接口voidcommmand。 这对我来说似乎是最干净的解决方案。 |
|
v.oddou · 设置哈希表和哈希集键之间的差异 7 年前 |
|
|
RiM · 如何在适配器中使用毕加索,而不使用片段中的上下文 7 年前 |
|
|
abc · 使用自定义适配器视图时,如何使listview可单击? 7 年前 |
|
|
LSikh · 将自定义对象设置为微调器并显示特定特性 7 年前 |
|
|
Ravi Parmar · 回收器视图数据未得到更新? 7 年前 |
|
|
Eyad Mufti · 如何打印完整列表视图(android) 7 年前 |