扩展View或ViewGroup对象的自定义android视图是否包含与用于可视化内容的逻辑不同的逻辑?因此,例如,如果我创建一个包含某些UI表单的自定义视图,它是否应包含用于验证输入的任何逻辑?或者进行WS调用以填充其中的一些内容?
答案 0 :(得分:0)
它可能各不相同,我会选择分离业务逻辑,因此您可以拥有一个完成工作的类,并告诉您的视图该做什么。
想象一下它是某种MVP
您的Presenter
执行业务逻辑并通过合同(接口)告诉View
它应该做什么。
为了给出更清晰的愿景,请遵循以下简单示例:
interface ViewContract {
fun showErrorMsg()
fun showSuccessMsg()
}
class View : ViewContract {
override fun showErrorMsg() {
TODO("show error")
}
override fun showSuccessMsg() {
TODO("show success")
}
}
class Presenter(val view: ViewContract) {
fun validateForm(...some parameters...) {
if (isNotValid) {// isValid
view.showErrorMsg()
} else {
view.showSuccessMsg()
}
}
}