Stellen Sie sich eine Situation vor, in der wir eine Bibliothek verwenden, mit der Sie CircleObjekte 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 flavourParameter benötigt . Nehmen wir jetzt an, ich muss es wirklich Circlein meiner eigenen App verwenden, aber für die Zwecke meiner App kann ich den Geschmack Flavours.Cardboardjedes Mal so einstellen.
Um dies zu "lösen", erstelle ich meine eigene CircleKlasse in einem anderen Namespace, der nur radiusund centerals Parameter verwendet, aber einen impliziten Konverter zur CircleKlasse 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 ?
makePlayernur Koordinaten akzeptiert, an denen der Spieler platziert werden soll, aber an einen viel komplexeren Konstruktor delegiert.