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.
Um comentário:
mto bom o post.
essa mistura de funcional com orientacao a objtos é bem interessante.
olha um exemplo em groovy:
class StringUtils{
def static format = { x, y -> x( y ) }
def static upper = { x -> x.toUpperCase() }
}
StringUtils.format( StringUtils.upper, 'aaaa' )
Postar um comentário