Immagina una situazione in cui stiamo utilizzando una libreria che ti consente di creare Circle
oggetti, in cui puoi specificare il raggio e il centro del cerchio per definirlo. Tuttavia, per qualche motivo, accetta anche un flavour
parametro richiesto . Ora diciamo che ho davvero bisogno di usare la Circle
mia app, ma ai fini della mia app posso impostare il sapore per essere Flavours.Cardboard
ogni volta.
Per "risolvere" questo, creo la mia Circle
classe in uno spazio dei nomi diverso, che accetta solo radius
e center
come parametri, ma ha un convertitore implicito nella Circle
classe della libreria esterna che crea semplicemente un Circle(this.radius, this.center, Flavours.Cardboard)
oggetto. Quindi ovunque ho bisogno dell'altro tipo Circle
, lascio che la conversione automatica abbia luogo.
Quali sono le conseguenze della creazione di una tale classe? Ci sono soluzioni migliori? Farebbe differenza se la mia applicazione fosse un'API costruita su questa libreria esterna, destinata all'uso da parte di altri programmatori?
MakeCircle
funzione ?
makePlayer
quella stessa che accetta solo le coordinate per posizionare il giocatore, ma delega a un costruttore molto più complesso.