Protocollo contro generico

4

Ho una classe che usa un tipo, ma non ha bisogno di sapere nulla di quel tipo. In Swift, posso codificarlo in due modi:

protocol Type { }

class Class {
    // use Type
}

o

class Class<Type> {
    // use Type
}

In questo momento mi sto orientando verso quest'ultimo perché se il cliente vuole usare un protocollo vuoto per il tipo, può semplicemente istanziare la classe generica con un protocollo vuoto.

Vorrei ricevere feedback su ciò che pensano gli altri.

    
posta Daniel T. 02.05.2016 - 13:29
fonte

1 risposta

3

In questo caso dovresti usare il parametro di tipo generico. L'utilizzo di un protocollo vuoto sarà quasi equivalente all'utilizzo di Any (a differenza di Any , i tipi dovrebbero essere estesi manualmente per conformarsi a Type ).

Una volta inserito qualcosa in Class , si perderebbero le informazioni sul tipo, proprio come se si fosse utilizzato Any . Quelle informazioni sul tipo potrebbero essere utili, non buttarle via!

    
risposta data 02.05.2016 - 19:48
fonte

Leggi altre domande sui tag