Я хочу очистить часть своего кода, который со временем стал слишком много копировать-вставить. У меня есть класс репозитория с несколькими методами, каждый из которых имеет разные сигнатуры, например:
fun first(a: Int, b: Int): Int {
val result = 0
val status = firstSpecificMethod(a, b)
when (status) {
"03" -> {
processResult("03")
}
"04" -> {
processResult("04")
first(a, b)
}
else -> {
//take some specific actions for this method
}
}
return result
}
fun second(s: String): Boolean {
val result = false
val status = secondSpecificMethod(s)
when (status) {
"04" -> {
processResult("04")
second(s)
}
else -> {
//take some specific actions for this method
}
}
return result
}
Существует множество таких методов, некоторые из них должны обрабатывать каждый возможный код состояния, некоторые только несколько, но все они должны разберитесь с этими кодами, прежде чем идти вперед и возвращать их окончательный результат.
Теперь стало слишком уродливо смотреть на этот код, повторяемый каждый раз. Я думал, что смогу переместить эти методы в функциональные типы и заставить их наследовать суперкласс, который централизованно обрабатывает эти случаи, но, честно говоря, я не знаю, как управлять этими различными сигнатурами из такого класса.
Надеюсь Я ясно дал понять. Есть предложения?