Michel-Alves
1/12/2020 - 1:40 AM

Nomes para funções de fábrica

[Nomeação de funções de Fábrica] Padrões para nomeação de funções que têm o objetivo de criar objetos.As dicas foram estraídas do livro Effective Kotlin e por isso tem exemplos nesta linguagem porém não os nomes podem ser usados em qualquer linguagem. #Kotlin #clean-code #java

Nomes para funções de fábrica

Referência: Effective Kotlin Item 30.

from - Uma função de conversão de tipo que recebe um parâmetro e retorna uma instância correspondente do mesmo tipo:

val date: Date = Date.from(instant)

of - Uma função de aggregação que recebe multiplos parâmetros e retorna uma instãncia do mesmo tipo que incorpora esses valores:

val faceCards: Set<Rank> = EnumSet.of(JACK, QUEEN, KING)

valueOf - Versão mais alternativa mais verbosa a from e of:

val prime: BigInteger = BigInteger.valueOf(Integer.MAX_VALUE)

instance ou getInstance - Usadas em singletons para obter a instância única. Quando parametrizada retorna uma instâncias parametrizada pelos argumentos. É esperado que para um mesmo argumento que a mesma instância seja retornada:

val luke: StackWalker = StackWalker.getInstance(options)

createInstance or newInstance - Como getInstance mas sempre retorna uma nova instância:

val newArray = Array.newInstance(classObject, arrayLen)

getType - Como getInstance, mas usada se a função de fábrica está em uma classe diferente. Type é o tipo que será retornado:

val fs: FileStore = Files.getFileStore(path)

newType - Igual a newInstance, mas usado se a função está em uma classe diferente. Type é o tipo do objeto retornado:

val br: BufferedReader = Files.newBufferedReader(path)