Accesso costante statica tramite interfaccia o classe astratta in java senza istanziazione

0

Hai bisogno di un consiglio su come ottenere il disaccoppiamento dei grafici dell'interfaccia utente dal contenuto.

Preambolo:

Ho un'interfaccia Sensor astratta e un sacco di implementazioni. L'interfaccia definisce un paio di funzioni, come l'analisi del testo ai valori effettivi, ecc.

D'altra parte, ogni implementazione del Sensore ha il suo range massimo definito, che è costante finale (e, nel senso, statico). Sull'interfaccia utente vorrei disegnare grafici dei dati del sensore in arrivo. Ogni grafico deve avere l'intervallo Y predefinito impostato sull'intervallo massimo dell'implementazione particolare.

Domanda attuale

Esiste un modo per accedere a campi statici di implementazioni tramite superclasse o interfaccia astratti senza istanziare realmente un oggetto fittizio di tipo di implementazione specifico?

    
posta stiebrs 08.09.2017 - 21:39
fonte

1 risposta

1

I metodi statici in Java non sono per l'accesso astratto.

In alcune lingue abbiamo veri metaclassi, il che significa che le classi stesse sono rappresentate da istanze a tutti gli effetti. I metaclassi possono ospitare metodi di classe (cioè statici in Java) e amp; campi ma (diversamente da Java con statica) possono anche partecipare alla gerarchia di classi, il che significa che possiamo creare astrazioni su più istanze di metaclassi (ad esempio su più classi regolari).

In Java, non è così che se vuoi l'astrazione a livello di classe, usiamo solo altre classi regolari che sono associate in modo più approssimativo (piuttosto che in particolare una classe è il metaclasse per un'altra classe).

Dato Java, ci sono tre scelte, penso. Usa la statica senza astrazione, configura questa capacità con un'altra astrazione esistente già presente nel tuo progetto o crea un'altra astrazione separata ma correlata per questo, diciamo uno che rappresenta la configurazione, o un metaclasse, o fabbrica, o qualcos'altro.

    
risposta data 09.09.2017 - 00:02
fonte

Leggi altre domande sui tag