Come può un metodo factory rimanere fedele a "Accetta interfacce e restituisce le strutture" in Golang?

0

Diciamo che ho un pacchetto che contiene diversi tipi di strutture TV. Ora, in base ai parametri passati, desidero restituire un tipo di TV specifico.

Come è possibile restituire il tipo specifico senza utilizzare il tipo di interfaccia TV nel tipo restituito.

Un altro esempio, diciamo che voglio implementare diversi tipi di io.Writer ma i writer di rete paralleli in un pacchetto dicono network_writers. Devo solo avere un'altra interfaccia specifica per i writer paralleli che si avvicini a "Accetta interfacce, restituisce le strutture"?

Ho difficoltà a trovare una buona soluzione a questo problema. Pur riflettendo su questo, ho anche difficoltà a rendere questo pacchetto privato o meno.

    
posta pinkpanther 03.08.2018 - 11:47
fonte

1 risposta

1

Questa non è una regola difficile: dobbiamo usare il giudizio. L'idea è di astrarre il tipo restituito solo quando è necessario, ma a volte è necessario!

Now, based on the parameters passed I would like to return a specific TV type.

Penso che saprai quando è necessario, nel caso in cui stai discutendo qui.

La frase ci ricorda di considerare la possibilità di chiamare i client durante la scrittura di funzioni e di comprendere che il consumo di interfacce come argomenti rende le funzioni / software che stiamo scrivendo più flessibili per quei client che chiamano.

Per i valori di ritorno, mantenere le cose semplici sembra appropriato, quindi non c'è bisogno di un'interfaccia se non si ha una situazione che ne richiede una.

    
risposta data 03.08.2018 - 17:48
fonte

Leggi altre domande sui tag