gpt4 book ai didi

java - 整洁的架构、数据请求编排器、演示器或用例/交互器?

转载 作者:行者123 更新时间:2023-11-29 04:21:06 25 4
gpt4 key购买 nike

谁应该从用户界面编排/映射数据?比如登录,我有usernamepassword:

1.) 我是否应该接受 LoginParam 作为我的演示者的参数,然后从 UI 创建 LoginParam 对象然后供应呢?或者

public class LoginPresenter {

public void login(LoginParam loginParam) { //pass the parameter from ui
loginUseCase.execute(loginParam)
....
}
}

2.) 只需接受usernamepassword 然后presenter 将创建LoginParam 传递用例?或者

public class LoginPresenter {

public void login(String username, String password) {
//create the object in the presenter
loginUseCase.execute(LoginParam.create(username, password))
}
}

3.) 最后,将 usernamepasswordpresenter 传递给 usecase 然后是 usecase 会为 API 调用创建 LoginParam 对象吗?

public class LoginPresenter {
public void login(String username, String password) {
loginUseCase.execute(username, password) //pass it through
...
}
}

然后是用例:

public class LoginUseCase {
public Single<LoginResp> execute(String username, String password) {
return userRepository.login(LoginParam.create(username, password))
...
}
}

如果是,那为什么?(请证明你的答案,并指出错误的解决方案会出现的问题)

从我读过的内容来看,我没有找到任何具体的问题答案。 (或者也许我错过了/不明白的东西哈哈)

最佳答案

一般来说,Bob 大叔谈论“请求从 View 发送到 Controller ”和“请求模型从 Controller 发送到交互器”。 Controller 必须在请求和请求模型之间进行转换。

在您的情况下,问题是您在哪里创建了 LoginParam?如果该类属于用例层,演示者将创建它。如果它属于接口(interface)适配器层, View 将创建它。

理论上,您还可以决定将纯字符串从 View 传递到 Controller 和用例交互器。拥有自定义类会更容易扩展(不破坏 api 更改)。如果您实际上有两个以上的参数,我会选择特定的请求对象(接口(interface)适配器层)和特定的请求模型(用例层)。

有关 Controller -交互器-演示器交互的更详细讨论,您可以在我的帖子中找到:https://plainionist.github.io/Implementing-Clean-Architecture-Controller-Presenter/

关于java - 整洁的架构、数据请求编排器、演示器或用例/交互器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49113580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com