Ten*_*nce 3 java android clean-architecture
谁应该编排/映射来自 ui 的数据?例如,登录时,我有username:password1.
) 我应该接受演示者上的LoginParamas参数,然后从 UI 中创建对象然后提供它吗?或者LoginParam
public class LoginPresenter {
public void login(LoginParam loginParam) { //pass the parameter from ui
loginUseCase.execute(loginParam)
....
}
}
Run Code Online (Sandbox Code Playgroud)
2.) 只要接受,username然后password就会presenter创建LoginParam要传递的use case?或者
public class LoginPresenter {
public void login(String username, String password) {
//create the object in the presenter
loginUseCase.execute(LoginParam.create(username, password))
}
}
Run Code Online (Sandbox Code Playgroud)
3.) 最后,将username和passwordfrom传递给presenter,usecase然后将为API 调用usecase创建对象?LoginParam
public class LoginPresenter {
public void login(String username, String password) {
loginUseCase.execute(username, password) //pass it through
...
}
}
Run Code Online (Sandbox Code Playgroud)
然后是用例:
public class LoginUseCase {
public Single<LoginResp> execute(String username, String password) {
return userRepository.login(LoginParam.create(username, password))
...
}
}
Run Code Online (Sandbox Code Playgroud)
如果是这样,那为什么呢?(请论证你的答案,并指出错误答案会出现的问题)
从我读过的内容来看,我没有找到我的问题的任何具体答案。(或者也许我错过/不明白一些事情哈哈)
一般来说,Uncle Bob 谈论“从视图发送到控制器的请求”和“从控制器发送到交互器的请求模型”。控制器必须在请求和请求模型之间进行转换。
在您的情况下,问题是您在哪里创建了 LoginParam?如果该类属于用例层,则演示者将创建它。如果它属于接口适配器层,视图将创建它。
理论上,您还可以决定将纯字符串从视图传递到控制器和用例交互器。拥有自定义类会更容易扩展(不间断的 api 更改)。如果您实际上有两个以上的参数,我会选择特定的请求对象(接口适配器层)和特定的请求模型(用例层)。
有关控制器-交互器-演示者交互的更详细讨论,您可以在我的帖子中找到:https ://plainionist.github.io/Implementing-Clean-Architecture-Controller-Presenter/
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |