null var flag: Boolean = false var numericValue: Int = 0 private val value1 = 50 private val value2 = 100 fun process(dataA: String, dataB: String, status: Boolean, value: Int) { data1 = dataA data2 = dataB flag = status numericValue = value send(dataB) val state = if (flag) { if (value >= value1) { if (value == value2) "State1" else "State2" } else { "State3" } } else { "State4" } println("Data $dataA state is $state. Action performed with: $dataB") } private fun send(target: String) { println("Action performed with $target") } 抽象的な命名 変更可能性 ネストの深い 三項演算子 サンプルコードでPRを作成 🛠 18 多重責務関数
{ send(dataB) - val state = if (flag) { + val state = determineState(value) + println("Data $dataA state is $state. Action performed with: $dataB") +} +private fun determineState(value: Int): String { + return if (flag) { if (value >= value1) { if (value == value2) "State1" else "State2" } else { "State3" } } else { "State4" } - println("Data $dataA state is $state. Action performed with: $dataB") } Design: DataProcessorクラスのprocessメソッドは、データの処理だけでなく、状態の決定と出力も 行っています。これにより、単一責任の原則に違反しています。状態の決定ロジックを別の メソッドに分割することをお勧めします。 22