命名问题没有通用的答案,所以你唯一能得到的是opinions.
经验法则
我在 rx-java 中的命名方法通常着眼于两件事:
- 它是否表达了发出事件的“流”(usually与名词的复数形式)?
- 它与 rx java 方法链的其他部分(尤其是
subscribe
method?
上述两种情况通常都可以简化为尝试将方法的名称放在这句话中:
这段代码订阅 to {name_of_the_method}
.
Examples
A) getUserName
这段代码订阅 to getUserName
.
???? 这句话确实not确实有道理,因为getUserName
不表达stream
。恰恰相反,它表明你可以有一个值get
.
getUserName().subscribe()
B) observeUserName
这段代码订阅 to observeUserName
.
???? 虽然该方法表达了stream
的事件,它不能很好地与subscribe
。方法暴露Observable
不是一个提供有关信息的地方observing
。该方法的使用者将观察该方法返回的内容。
observeUserName().subscribe()
C) userNames
这段代码订阅 to userNames
.
????????这在某些情况下可能有效。它很好地表达了一股userName
正在发射的物品并且可以很好地配合subscribe
。这实际上取决于特定的场景,因为它表明您可以预期多个userNames
当你真的想观察单个userName
变化。
userNames().subscribe()
C) userNameChanges
这段代码订阅 to userNameChanges
.
???? 此方法很好地表达了存在一个项目流(“更改”事件),并且它适用于subscribe
method.
userNameChanges().subscribe()
返回上一屏幕
就你而言returnToPreviousScreen
情况是这样,我想我最终会使用类似的东西:
这段代码订阅 to returnRequests()
.
or
这段代码订阅 to previousScreenRequests()
.
甚至是单数形式,因为流中只能发出一个事件:
这段代码订阅 to previousScreenRequest()
.
(不是问题的主题,但我想我会用Single<Unit>
而不是Completable
,表达单一事件发射而不是完成......但也许这只是我).