Em geral, se houver um grande número de valores constantes de estado no sistema, como o identificador único que representa a temporada code
, respectivamente SPRING, SUMMER, FALL, WINTER
, podemos criar uma tabela de dicionário ou usar uma classe de enumeração.
Se armazenado na tabela de dicionário do banco de dados, armazene o code
valor e o nome em chinês e defina o método de acesso e a interface.
Se a classe de enumeração também requer o uso de code
e name
duas propriedades, a classe pode ser definida na enumeração de todos os métodos de enumeração adquiridos. Tal como:
import java.util.ArrayList;
import java.util.List;
public enum SeasonEnum {
SPRING("春天","SPRING"),
SUMMER("夏天","SUMMER"),
FALL("秋天","FALL"),
WINTER("冬天","WINTER");
private final String name;
private final String code;
private SeasonEnum(String name,String code)
{
this.name = name;
this.code=code;
}
public String getName() {
return name;
}
public String getCode() {
return code;
}
public List<EnumDO> getAll(){
List<EnumDO> enumDOS=new ArrayList<>();
for (SeasonEnum seasonEnum:SeasonEnum.values()){
EnumDO enumDO=new EnumDO();
enumDO.setCode(seasonEnum.getCode());
enumDO.setCode(seasonEnum.getCode());
enumDOS.add(enumDO);
}
return enumDOS;
}
}
Uma vez que esses dois métodos podem ser usados, qual é a diferença?
Usar classe de enumeração não precisa procurar a tabela, a velocidade é mais rápida, mas se o valor da constante de estado mudar, o código na classe de enumeração precisará ser alterado, empacotado e liberado. Se não houver necessidade de alterar o código no banco de dados, basta escrever SQL para adicionar verificação e alteração.