ich habe eine Verständnisfrage in Sachen Exception Handling. So vorerst mal zur Info:
Ich habe eine pseudo Klasse(LicenceRepository) vorbereitet.
Der Private Konstruktor dieser Klasse, könnte eine Exception auslösen.
So jetzt zu meiner Frage, ist es möglich in der Zeile: static final LicenceRepository instance = new LicenceRepository();
eine Exception abzufangen ?
Pseudo Klasse:
Java:
publicclassLicenceRepositoryimplementsRepository{//Wie kann ich hier eine Exception fangen? Oder geht das gar nicht?staticfinalLicenceRepository instance =newLicenceRepository();privateLicenceRepository()throwsException{this.licences =newHashMap<Long,Document>();this.currentlySyncronized =false;Configuration.defaultConfiguration();}...publicstaticRepositorygetInstance()throwsException{returnInstanceContainer.instance;}}
[c]throws Exception[/c] ist imho ganz böse in so einem Fall, solltest konkret werden, am besten mit der passenden Unterklasse einer RunTimeException.
Anderfalls könntest du einen statischen Block machen:
Java:
staticfinalLicenceRepository instance;static{try{
instance =newLicenceRepository()}catch(KonkreteException ex){// tue was sinnvolles mit der Exception... ?}}
Ich gebe euch in dem besagten Recht.
Singelton ist nicht das all Heilmittel und kann Probleme mit sich bringen.
Haben aber ihre exestenz Begründung:
Genau wie, bygones meinte, ich benötige nur eine Instanz der Klasse.
(Und bekomm ich jetzt, dein Monatsgehalt?)
Zur Info, die Klasse wird später in einem WebContainer laufen und
dort werden mehrer Servlets auf diese Klasse zugreifen.(Gemeinsame Datenhaltung, muss diverse Daten im Speicher halten)
Daher benötigte ich eine Threadsicheres Singleton.
Das sind meine Bewegründe für ein Singleton.
Ich gebe euch in dem besagten Recht.
Singelton ist nicht das all Heilmittel und kann Probleme mit sich bringen.
Haben aber ihre exestenz Begründung:
Genau wie, bygones meinte, ich benötige nur eine Instanz der Klasse.
(Und bekomm ich jetzt, dein Monatsgehalt?)
Zur Info, die Klasse wird später in einem WebContainer laufen und
dort werden mehrer Servlets auf diese Klasse zugreifen.(Gemeinsame Datenhaltung, muss diverse Daten im Speicher halten)
Daher benötigte ich eine Threadsicheres Singleton.
Das sind meine Bewegründe für ein Singleton.
Deine Begründung bestätigt bygones & meinen Verdacht: Missbrauch des Singleton Muster als globale Variable. Eigentlich brauchst du hier kein GoF Singleton...
Naja, hoffe mal dass du zumindest von [c]throws Exception[/c] abgekommen bist
Keine Angst, das mit dem throws Exception, ist in Wahreit eine RepositoryException war nur nen Beispiel.(Aus reiner Faulheit)
Ihr rattet mir davon ab, also könntet ihr mir Alternativen nennen ?
ist nicht sehr schwer... es geht im grunde darum dass alle Abhaengigkeiten einer Klasse ihr mitgeteilt werden und sie sich diese nicht irgendwo aus einem statischen Kontext rausholt.