所以我可以说我有一个要求:每当按下特定按钮时,我应该调用一个Web服务来发送一些日志。
此按钮可用于多个屏幕,所以我为什么不将其放在CustomView View
中并从那里调用Web服务呢?
然后,我将仅将此自定义视图添加到xml布局中,而不必担心任何事情了。这是个好主意吗?
如果不是,那么有人可以提出更好的解决方案吗?谢谢。
答案 0 :(得分:0)
我建议您创建一个类,假设RequestSender
的a将字符串记录为构造函数中的params。
然后您将创建一个方法send()
来触发发送过程。
只要您想发送日志,就可以按照以下步骤进行操作:
RequestSender request = new RequestSender(string logs);
request.send();
答案 1 :(得分:0)
对于您现有的架构(MVP),最好将逻辑放在Presenter
中,实际上View
上不应有任何逻辑(在您的情况下为自定义视图)从输入(例如单击按钮)并提供输出。
假设您在按钮上设置了一个点击监听器(当然是这样):
button.setOnClickListener { yourPresenter.doSomeAction() }
并在YourPresenter中:
fun doSomeAction() {
//do necessary action for the button
//after that, send logs
}
按照这些模式,您可以轻松地对演示者进行单元测试,例如测试是否实际调用了日志(也可以指定确切的输入)。
注意:如果您使用的是Clean Architecture,我建议将其放在域层(Interactor/UseCase)
上,因为Presentation Layer
不在乎记录什么以及何时记录。