在我的 ViewModel 中,我实现了几个函数来操纵 UI 的状态。它很快变得越来越大,我想知道这些功能是否违反了DRY原则?我可以将它全部包装在一个函数中,但另一方面,该函数会复杂得多,也更难测试。这里最好的解决方案是什么?
private val _inputState = MutableStateFlow(InputFieldDutyState())
val inputState = _inputState.asStateFlow()
fun updateInputStateTitle(title: String) {
_inputState.update {
it.copy(title = title)
}
}
fun updateInputStateCharacterCounterTitle(characterCounter: Int) {
_inputState.update {
it.copy(characterCounterTitle = characterCounter)
}
}
fun updateInputStateDescription(description: String) {
_inputState.update {
it.copy(description = description)
}
}
fun updateInputStateCharacterCounterDescription(characterCounter: Int) {
_inputState.update {
it.copy(characterCounterDescription = characterCounter)
}
}
fun updateInputStateCategory(category: String) {
_inputState.update {
it.copy(category = category)
}
}
fun updateInputStateCharacterCounterCategory(characterCounter: Int) {
_inputState.update {
it.copy(characterCounterCategory = characterCounter)
}
}
fun updateInputStateDeadline(deadline: String) {
_inputState.update {
it.copy(deadline = deadline)
}
}
fun updateInputStateCharacterCounterDeadline(characterCounter: Int) {
_inputState.update {
it.copy(characterCounterDeadline = characterCounter)
}
}