È meglio spiegare la domanda con un esempio. Possiedo un modello di interfaccia che può essere utilizzato per accedere ai dati. Possono esserci diverse implementazioni di Model che possono rappresentare i dati in vari formati come XMl, formato txt ecc. Il modello non riguarda i formati. Diciamo che una tale implementazione è myxmlModel.Forza modello Singleton su una classe che implementa un'interfaccia
Ora voglio forzare myxmlModel ed ogni altra realizzazione di Modello seguire Singleton pattern .Il solito modo è quello di rendere myxmlModels costruttore privato e fornire un metodo factory statico per restituire un'istanza di MyModel class.Ma il problema è l'interfaccia non può avere definizioni di metodo statico e un risultato non posso applicare una particolare definizione del metodo Factory su tutte le implementazioni di Modello. Pertanto, un'implementazione può terminare con la fornitura di getObject() e altri potrebbero avere NewModel()..
Un lavoro intorno è quello di consentire l'accesso al pacchetto costruttore di myxmlModel e creare una classe di fabbrica che crea il myxmlModel oggetto e memorizzare nella cache per un ulteriore uso.
Mi chiedevo se esiste un modo migliore per ottenere la stessa funzionalità.
Provato. La classe astratta non funziona – Duleb
Il polimorfismo non funziona in caso di metodo statico. Vedi se hai un metodo statico in classe astratta e lo sostituisci in sottoclasse, quindi se provi ad accedere a quel metodo quello originale verrebbe chiamato non il metodo della sottoclasse. – Duleb
Ahhh, certo, mi dispiace per quello. – Steven