Estava lendo o seguinte post do meu amigo eliezer sobre eliminar if encadeados e pensei: Como seria um código para resolver esse problema em Scala.
Utilizando firstClass functions e placehoder syntax criei o seguinte código:
object StringUtils {
def format( action: String => String, value: String ) = action(value)
def removeBlanks = { (_:String).replaceAll( " ", "") }
def onlyNumbers = { (_:String).replaceAll( "\\D", "" ) }
}
Dá pra ver que o código fica bem mais enxuto e a responsabilidade fica toda dentro do objeto singleton StringUtils. O código cliente fica bem interessante também:
StringUtils.format( StringUtils.removeBlanks, "Ola enfermeira" )
O código retorna Olaenfermeira
Legal né =)
Se você tem alguma idéia melhor por favor compartilhe ela aí embaixo.
