Ho recentemente (4 giorni fa) iniziato a programmare in JAVA. Ho una certa esperienza di programmazione generale da C++ e PHP. La mia domanda è: possiamo implementare una funzione in JAVA, che è disponibile in tutte le classi? Sto pensando ad alcune funzioni di logging globale, che devo chiamare in diversi posti (eventi di registro, errori, ecc.).Funzione Java (metodo) disponibile ovunque (globale)
Immaginate di avere due classi, A e B. Ho bisogno di chiamare la funzione di registrazione in entrambi, ma non voglio copiare tutto il corpo della funzione (cosa terribile credo), e voglio chiamarlo rigorosamente (senza creare un'altra classe, creando un'istanza e quindi chiamando dall'istanza), ad esempio logEvent(someVariable)
. Quindi dovrei usare una classe astratta C, che A e B si estenderanno, ma sono già un'estensione di un'altra classe (built-in). Dal momento che non è consentita l'ereditarietà multipla (vero?), Ho bisogno di fare qualche trucco. Singleton non mi piace anche a me. In PHP o C++ vorrei semplicemente creare un file separato con il corpo della funzione e quindi includerlo.
Ecco come voglio usarlo:
public class A extends SomeClass {
String error = "Error from class A";
logEvent(error);
}
public class B extends SomeOtherClass {
String error = "Error from class B";
logEvent(error);
}
Si può leggere sul male 'Singleton' modello. –
@LeeMeador "male" è una questione di opinione. – hexafraction