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