Sto memorizzando piccole interfacce da un intervallo di oggetti in un unico "negozio" di TInterfaceList con l'intenzione di offrire un elenco di tipi di interfaccia specifici all'utente finale, quindi ogni l'interfaccia esporrà una funzione 'GetName' ma tutti gli altri metodi sono unici per quel tipo di interfaccia. Per esempio qui ci sono due interfacce:Come memorizzare e localizzare più tipi di interfaccia all'interno di Delphi TInterfaceList
IBase = interface
//----------------------------------------
function GetName : string;
//----------------------------------------
end;
IMeasureTemperature = interface(IBase)
//------------------------------------
function MeasureTemperature : double;
//----------------------------------------
end;
IMeasureHumidity = interface(IBase)
//----------------------------------------
function MeasureHumidity: double;
//----------------------------------------
end;
ho messo alcune di queste interfacce in un unico TInterfaceList e poi mi piacerebbe scorrere la lista per un tipo di interfaccia specifica (ad esempio 'IMeasureTemperature') la costruzione di un altro elenco di puntatori agli oggetti che esportano tali interfacce. Non voglio fare supposizioni sulle posizioni di quegli oggetti, alcuni potrebbero esportare più di un tipo di interfaccia. So che potrei fare questo con una gerarchia di classi con qualcosa di simile:
If FList[I] is TMeasureTemperature then ..
ma mi piacerebbe fare qualcosa simliar con un tipo di interfaccia, è possibile?
Si potrebbe voler chiarire se il primo elenco contiene l'interfaccia effettiva * tipi * o riferimenti alle istanze * oggetto * che implementano tali interfacce. Sembra che tutte le persone che hanno risposto qui finora abbiano assunto quest'ultimo mentre leggevo la tua domanda per parlare del primo ... poi di nuovo non puoi memorizzare i * tipi di interfaccia * in un 'TInterfaceList' ... quindi probabilmente ho torto ... –