Startegy
public
class SolicitacaoFacadeImpl implements SolicitacaoFacade {
private static final String pacote = "br.com.marketdata.sps.business.impl.";
private final ISolicitacaoFacadeStrategy strategy;
private final Solicitacao solicitacao;
private SolicitacaoDao solicitacaoDao;
public SolicitacaoFacadeImpl() {
super();
strategy = new SolicitacaoFacadeStrategy();
solicitacao = null;
}
public SolicitacaoFacadeImpl(Solicitacao solicitacao){
if(solicitacao == null){
throw new IllegalArgumentException("Campo solicitacao não pode ser nulo.");
}
String classe = String.format(
"%sFacadeStrategy", solicitacao.getClass().getSimpleName());
try {
@SuppressWarnings("unchecked")
Class<ISolicitacaoFacadeStrategy> clazz = (Class<ISolicitacaoFacadeStrategy>) Class.forName(
pacote+classe);
strategy = clazz.newInstance();
this.solicitacao = solicitacao;
}
catch (ClassNotFoundException e) {
throw new RuntimeException("Erro ao criar o objeto Class de " + classe, e);
}
catch (InstantiationException e) {
throw new RuntimeException("Falha na inicialização de " + classe, e);
}
catch (IllegalAccessException e) {
throw new RuntimeException("Falha ao acessar o construtor padrão de " + classe, e);
}
}
}
Nenhum comentário:
Postar um comentário