Request
クラスには、colorType
さまざまな色のプロパティがあります。色の種類によって、取り扱いが異なります。
コントローラーのコードは次のとおりです。
def colorInstance = Color(params)
//validates and checks the params. Also, based on some logic sets the `colorType` property
//to be appropriate color
if (colorInstnace.validate())
{
colorService.processColor(colorInstance)
}
colorService
コードは次のとおりです。
void processColor(Color colorInstance) {
if (colorInstance.colorType == "green")
processGreen(colorInstance)
else if (colorInstance.colorType == "red")
processRed(colorInstance)
....
......
}
processGreen(Color colorInstance) {
//common code
//code specific to colortypes that are GREEN
//more common code
}
processRed(Color colorInstance) {
//common code
//code specific to colortypes that are RED
//more common code
}
質問
processXXX
すべてのメソッドでコードをコピーして貼り付ける必要がないように、サービスのコードを変更するにはどうすればよいですか?- メソッド
if/elseif
内のを削除するにはどうすればよいですか?processColor