Salve a tutti del forum,
Premetto che sto sviluppando una mia libreria composta da diversi package e in ognuno di questi vi sono diverse classi.
I package sono chiamati per argomenti ossia del tipo: swing / stream / utility / exception.
Le classi delle utility, ad esempio, mettono a disposizione una serie di metodi statici per diverse attività. Le classi del package stream invece gestiscono vari formati di file tra cui testo / xml / etc.
Premetto che ogni classe può utilizzare istanze di altre classi presenti nei vari package!!
[PREMESSA]
Ora, per quanto riguarda il package "exception", questo package contiene una classe la quale deriva dalla classe delle eccezioni. Questa classe consente di gestire una eccezione lanciata dall'utilizzatore della classe, dando la possibilità di registrare, su richiesta, determinate informazioni in un file log ad esempio di testo.
[PREMESSA]
Nel package stream vi è una classe astratta che definisce i metodi standard e tutte le altri classi devono ereditare i metodi. Domanda al volo conviene un'interfaccia o una classe astratta?
Le classi che gestiscono i file (una classe per tipo) ridefiniscono i metodi in base alla tipologia di file. In caso di problemi queste classi usano la "classe delle eccezioni" per registrare nel log i problemi chi ci sono stati durante l'esecuzione.
La mia perplessità è:
La classe che gestisce le eccezioni, può utilizzare la classe che gestisce lo stream di file per registrare i dati ? Oppure conviene una classe privata a parte per gestire il file dei log?
La mia preoccupazione è che possa nascere un problema di ricorsività ossia:
classe streamX -> Registrazione -> Evento Errore -> Lancio Exception -> Registrazione errore
-> classe streamX -> Registrazione -> Evento Errore->.....loop!!!!
Secondo alcuni testi le classi non devono essere dipendenti l'una all'altra e credo che a questo l'ho assolto ma da come si sta mettendo sembra che la cosa possa avere una ricorsività sugli eventi. Oppure sono entrato nel pallone!!!!!
Mi dimenticavo, come linguaggio sto utilizzando Java8
Grazie per aver letto e scusate se il testo è lungo.
Saluti