Imaginez une situation où nous utilisons une bibliothèque qui vous permet de créer des Circle
objets, où vous pouvez spécifier le rayon et le centre du cercle pour le définir. Cependant, pour une raison quelconque, il prend également un flavour
paramètre requis . Maintenant, disons que j'ai vraiment besoin d'utiliser Circle
dans ma propre application, mais pour les besoins de mon application, je peux définir la saveur à Flavours.Cardboard
chaque fois.
Pour "résoudre" cela, je crée ma propre Circle
classe dans un espace de noms différent, qui ne prend radius
et center
comme paramètres, mais a un convertisseur implicite à la Circle
classe de la bibliothèque externe qui crée juste un Circle(this.radius, this.center, Flavours.Cardboard)
objet. Donc, partout où j'ai besoin de l'autre type de Circle
, je laisse la conversion automatique avoir lieu.
Quelles sont les conséquences de la création d'une telle classe? Y a-t-il de meilleures solutions? Cela ferait-il une différence si mon application était une API construite au-dessus de cette bibliothèque externe, destinée à être utilisée par d'autres programmeurs?
MakeCircle
fonction ?
makePlayer
où elle-même n'accepte que les accords pour placer le joueur, mais les délègue à un constructeur beaucoup plus complexe.