Refatoração em código Java

Colegas, boa noite!

Analisando alguns códigos de projetos anteriores para aplicar alguns conceitos de refatoração me deparei com isso:

public String montarEnderecoCondominio() {
		try {
			pnrArea = pnrAreaDAO.getAll();
			// Consulta as quadras de acordo com à área selecionada.
			if(idArea > 0) {
				pnrQuadra = pnrQuadraDAO.listaQuadraPorAreas(idArea);
			}if(idQuadra > 0) {
				pnrBloco = pnrBlocoConjuntoDAO.listaPNRBlocoConjuntoPorQuadra(idQuadra);
			}if(idBloco > 0) {
				condominio = condominioDAO.pesquisarCondominioByBloco(idBloco);
				if(condominio != null) {
					addActionError("Condomínio já cadastrado. Se necessário atualize o cadastro utilização a opção no menu Condomínio - Cadastro - Atualizar");
				}else {
					flag = "2";
				}
			}
		} catch (Exception e) {
			addActionError(e.toString());
		}
		return ActionSupport.SUCCESS;
	}

Vejo esse método e quero fazer outro na hora. Gostaria que os colegas me ajudassem a analisar alguns tópicos.

1 - A lista abaixo é preenchida por diversar vezes no sistema. É uma lista com cidades onde podem existir condomínios que não muda nunca. Pode mudar mas de 50 em 50 anos. Não seria interessante carregar esse lista ao inicializar o container e depois salvar numa sessão para evitar as consultas desnecessárias?

	pnrArea = pnrAreaDAO.getAll();

2 - A velha história de como carregar varias selects sem sair fazendo método para cada ação. No trecho abaixo ele usa uma gambiarra para que o mesmo método carregue as áreas, quadras e blocos. Alguém sabe de uma outra solução para isso?

if(idArea > 0) {
				pnrQuadra = pnrQuadraDAO.listaQuadraPorAreas(idArea);
			}if(idQuadra > 0) {
				pnrBloco = pnrBlocoConjuntoDAO.listaPNRBlocoConjuntoPorQuadra(idQuadra);
			}if(idBloco > 0) {
				condominio = condominioDAO.pesquisarCondominioByBloco(idBloco);
				if(condominio != null) {
					addActionError("Condomínio já cadastrado. Se necessário atualize o cadastro utilização a opção no menu Condomínio - Cadastro - Atualizar");
				}else {
					flag = "2";
				}
			}

Se puderem me ajudar agradeço.