[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
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)