Stellen Sie sich eine Situation vor, in der wir eine Bibliothek verwenden, mit der Sie Circle
Objekte erstellen können, in der Sie den Radius und den Mittelpunkt des Kreises angeben können, um ihn zu definieren. Aus irgendeinem Grund wird jedoch auch ein erforderlicher flavour
Parameter benötigt . Nehmen wir jetzt an, ich muss es wirklich Circle
in meiner eigenen App verwenden, aber für die Zwecke meiner App kann ich den Geschmack Flavours.Cardboard
jedes Mal so einstellen.
Um dies zu "lösen", erstelle ich meine eigene Circle
Klasse in einem anderen Namespace, der nur radius
und center
als Parameter verwendet, aber einen impliziten Konverter zur Circle
Klasse der externen Bibliothek hat , der nur ein Circle(this.radius, this.center, Flavours.Cardboard)
Objekt erstellt. Überall, wo ich den anderen Typ brauche Circle
, lasse ich die automatische Konvertierung stattfinden.
Was sind die Konsequenzen einer solchen Klasse? Gibt es bessere Lösungen? Würde es einen Unterschied machen, wenn meine Anwendung eine API wäre, die auf dieser externen Bibliothek basiert und von anderen Programmierern verwendet werden soll?
MakeCircle
Funktion erstellen ?
makePlayer
nur Koordinaten akzeptiert, an denen der Spieler platziert werden soll, aber an einen viel komplexeren Konstruktor delegiert.