Android,如何减少这种重复的代码? [关闭]

问题描述 投票:0回答:0

在我的 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)
    }
} 
android kotlin dry android-viewmodel
© www.soinside.com 2019 - 2024. All rights reserved.