1
3
好吧,你自己总结得很好:如果你想通过引入
Reading into what the LoD says
,它谈到对“密切相关”单元的“有限”知识。对我来说,这听起来像一个灰色区域,但更进一步,它还提到了“只有一个点”规则。尽管如此,我还是同意对您的问题的评论,即空检查(或
如果您想真正封装更多内容,可以删除
但是,正如评论者指出的那样:这值得/必要吗?所有这些定律/原则很少是绝对的,更多的是指导原则,而不是教条。在这种情况下,可能需要平衡LoD和KISS。 最后,由您决定将流的功能移动到用户类中是否有利于此特定示例。两者均有效,可读性/可维护性/清洁度取决于:
|
2
1
或
|
3
0
我相信你自己已经回答了这个问题。 这里有两个不同的用例:
第一个用例可以通过添加方法来解决
|
4
0
LoD要求您考虑的是是否需要给出(即请求/访问)地址的值。如果答案是肯定的,那么您需要处理null或空值的情况;否则,您可以考虑是否可以请求地址的存在。 因此,如果它对要给出的地址有效,那么返回一个Optional将处理空值情况,并可用于确定是否存在。在我看来,检查一个可选项是否为“空”与检查一个整数是否为0是一样的——你并没有访问其他对象的属性,只是访问了你得到的对象的属性。
否则,为什么这里会发生这种过滤? |
5
0
另一种方法是将计算转移到用户类。 由于用户拥有该地址,他应该能够回答有关该地址的问题,而不必公开该地址。这样你就能满足LoD |
riccardo.cardin · Java中的可选单子和德米特定律 7 年前 |