私のアプリケーションに2つのシングルトンがあります。ここに問題があります: それぞれが互いに必要なので、2つのうちのどれも構築できませんa stackOverflowErrorそれを乗り越えるには?1対1シングルトンの関係を作成する方法
public class ApplicationService {
private ApplicationDao applicationDao;
private DerogationService derogationService;
private LogService logService;
private static ApplicationService applicationServiceInstance;
private ApplicationService()
{
applicationDao = ApplicationDao.getInstance();
derogationService = DerogationService.getInstance();
logService = LogService.getInstance();
}
public static synchronized ApplicationService getInstance(){
if(applicationServiceInstance == null)
{
applicationServiceInstance = new ApplicationService();
}
return applicationServiceInstance;
}
。
public class DerogationService {
private DerogationDao derogationDao;
private ApplicationService applicationService;
private DroitService droitService;
private static DerogationService derogationServiceInstance;
private DerogationService(){
applicationService = ApplicationService.getInstance();
droitService = DroitService.getInstance();
derogationDao = DerogationDao.getInstance();
}
public static synchronized DerogationService getInstance(){
if(derogationServiceInstance == null)
{
derogationServiceInstance = new DerogationService();
}
return derogationServiceInstance;
}
Thxみんな! :)
方法について そして、THXのためのThxをフィールドに格納する代わりに、他のクラスのインスタンスが必要ですか? –
私はメソッドを非常に頻繁に呼び出すので、コードはこのように読みにくくなると思います。 私はそれがそのようにする方法でなければならないと確信しています – Antoine
他のsingletoneへの参照が 'null'なら' getInstance() 'だけを呼び出すように各コンストラクタで' null'チェックを追加できます。 – Titus