Lors de la création d'un objet, je pense que le code peut être actualisé si vous utilisez enum au lieu du branchement conditionnel à l'aide de l'instruction if ou de l'instruction switch.
Ce qui suit est un exemple d'implémentation d'Enum qui retourne l'animal correspondant quand un aboiement est entré.
AnimalCreator.java
public enum AnimalCreator {
	CAT("nyaa", Cat::new), 
	DOG("waon", Dog::new), 
	BIRD("pii", Bird::new);
	private String nakigoe;
	private Supplier<Animal> create;
	AnimalCreator(String nakigoe, Supplier<Animal> creator) {
		this.nakigoe = nakigoe;
		this.create = creator;
	}
	//Carte qui renverse l'animal de l'écorce
	private static final Map<String, AnimalCreator> map = 
			Stream.of(AnimalCreator.values())
				.collect(Collectors.toMap(a -> a.nakigoe, a -> a));
	//factory method
	public static Animal of(String nakigoe) {
		return Optional.ofNullable(map.get(nakigoe))
				.map(a -> a.create.get())
				.orElseThrow(IllegalArgumentException::new);
	}
}
L'appelant ressemble à ceci. Le code est plus propre car il n'y a pas de branches conditionnelles.
main.java		
    Animal cat = AnimalCreator.of("nyaa");
    Animal dog = AnimalCreator.of("waon");
    Animal bird = AnimalCreator.of("pii");
    Animal mouse = AnimalCreator.of("chu");
    // java.lang.IllegalArgumentException se produit
        Recommended Posts