私は Java Web アプリケーションに取り組んでおり、設計に関していくつか質問があります。
基本的に現在のバージョンでは、例外のキャッチに大きく依存して制御の流れを決定しています。
たとえば、Spring サービス クラスの 1 つには、パラメーターとして指定された電子メールがデータベースに存在するかどうかを確認する次のメソッドがあります。
@Override
public boolean validateEmailAddressDoesNotExist(String accountEmailAddress) {
try {
return !dao.checkIfEmailAddressAlreadyExists(accountEmailAddress);
} catch (NoResultException re) {
log.error("NoResultException", re);
} catch (RuntimeException re) {
log.error("RuntimeException", re);
}
return true;
}
//from "dao" class
public boolean checkIfEmailAddressAlreadyExists(String accountEmailAddress) {
return (loadAccountFromAccountEmailAddress(accountEmailAddress) == null ? false : true);
}
//also from "dao" class
public Account loadAccountFromAccountEmailAddress(String accountEmailAddress) {
return entityManager.createNamedQuery("Account.findByEmailAddress", Account.class).setParameter("accountEmailAddress", accountEmailAddress).getSingleResult();
}
私の現在の設計はおそらく間違っているのではないかと思いますが、それについてのコメントや意見を読んで、どの程度欠陥があると考えているかを読んでいただければ幸いです.