Executando verificação de segurança...
1

Algumas implementacoes dependem muito da linguagem, mas em algumas estruturas tu pode utilizar mapa na estrutura chave:valor para armazenar um conjunto de dados que pode ser validado. Usei isso algumas vezes em Python e em Java.

Por exemplo, esse método em Java que recebe uma região como parametro, e retorna uma lista com a sigla de alguns estados da região:

	private ArrayList<String> getEstados(String regiao) {
	    if (regiao.equalsIgnoreCase("Sul")) {
		    return new ArrayList<>(Arrays.asList("RS", "SC", "PR"));
		} else if (regiao.equalsIgnoreCase("Sudeste")) {
		    return new ArrayList<>(Arrays.asList("SP", "RJ", "MG", "ES"));
		} else if (regiao.equalsIgnoreCase("Centro Oeste")) {
		    return new ArrayList<>(Arrays.asList("GO", "MS", "MT", "DF"));
		} else if (regiao.equalsIgnoreCase("Nordeste")) {
		    return new ArrayList<>(Arrays.asList("PE", "PB", "BA", "MA"));
		} else if (regiao.equalsIgnoreCase("Norte")) {
		    return new ArrayList<>(Arrays.asList("AM", "PA", "AC", "AP"));
		} 
		return null;
	}

Toda essa validação de if-else poderia ser alterada por:

static HashMap <String, ArrayList<String>> mapa = new HashMap<>();
    
	public static void main(String[] args) {
		mapa.put("Sul", new ArrayList<>(Arrays.asList("RS", "SC", "PR")));
		mapa.put("Sudeste", new ArrayList<>(Arrays.asList("SP", "RJ", "MG", "ES")));
		mapa.put("Centro Oeste", new ArrayList<>(Arrays.asList("GO", "MS", "MT", "DF")));
		mapa.put("Nordeste", new ArrayList<>(Arrays.asList("PE", "PB", "BA", "MA")));
		mapa.put("Norte", new ArrayList<>(Arrays.asList("AM", "PA", "AC", "AP")));
		
		System.out.println("Estados da regiao Sul: " + getEstados("Sul"));
	}
	
	private static ArrayList<String> getEstados(String regiao) {
	    return mapa.get(regiao);
	}

Neste caso acima, criamos um mapa, onde o campo chave é o nome da região, e o campo valor é a lista com as siglas dos estados. No novo metodo, apenas estamos verificando no mapa, para retornar o valor da chave referente a regiao (no caso ali, a "Sul").

Assim, implementamos a mesma lógica, sem usar nenhum if-else. Além disso, utilizando essa abordagem, seu código pode trabalhar com dados dinamicos.

No primeiro caso, o método getEstados está totalmente hardcoded, então se algum novo estado fosse adicionado na lista, teria que alterar o código fonte. No segundo caso, utilizando o mapa, mesmo que um novo estado (ou até mesmo regiao) fossem adicionados, não mudaria nada no método getEstados, tornando assim o código mais escalável e fácil de manter.

Neste segundo caso, somente seria necessário alterar o código se a estrutura em si do mapa, com a chave String e o valor ArrayList fossem alterados para algum outro tipo de dado.

Carregando publicação patrocinada...