Immagina una situazione in cui stiamo utilizzando una libreria che ti consente di creare Circleoggetti, in cui puoi specificare il raggio e il centro del cerchio per definirlo. Tuttavia, per qualche motivo, accetta anche un flavourparametro richiesto . Ora diciamo che ho davvero bisogno di usare la Circlemia app, ma ai fini della mia app posso impostare il sapore per essere Flavours.Cardboardogni volta.
Per "risolvere" questo, creo la mia Circleclasse in uno spazio dei nomi diverso, che accetta solo radiuse centercome parametri, ma ha un convertitore implicito nella Circleclasse 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 ?
makePlayerquella stessa che accetta solo le coordinate per posizionare il giocatore, ma delega a un costruttore molto più complesso.