Ich habe eine Programmieraufgabe erhalten, und eines der Dinge, die ich tun muss, ist die Implementierung einer Methode, die eine Wrappermethode verwendet, die auf einer anderen Methode beruht, um die Koordinaten von der niedrigsten zur höchsten zu sortieren. Ich bin mir nicht sicher, was genau mit der Implementierung einer Wrapper-Methode gemeint ist.
%Vor%Sie handeln jetzt als Wrapper-Methode, indem Sie Ihre Aufgabenfrage zu Stack Overflow stellen!
Eine Wrapper-Methode beantwortet eine Frage, indem sie eine "Experten" -Methode für die Antwort anfordert. Im Allgemeinen macht es drei Dinge:
In Ihrem Fall ist die "Experten" -Methode recursiveSort()
und Ihre sortCoordsByZ()
-Methode muss recursiveSort()
mit den richtigen Parametern aufrufen und dann eventuell etwas mit der Antwort machen, bevor Sie sie zurückgeben.
Wenn Sie eine Wrappermethode implementieren, codieren Sie effektiv eine Variante einer vorhandenen Methode, weil die vorhandene Methode Ihren aktuellen Anforderungen nicht entspricht. Die ursprüngliche Methode ist möglicherweise zu kompliziert (zu viele Parameter), oder sie kann die erforderliche Funktion nicht ausführen, was bedeutet, dass Sie einen Wrapper (oder eine Überladung) schreiben müssen, der die zusätzliche Arbeit erledigt, die die ursprüngliche Methode nicht leistet. Normalerweise werden Sie beim Schreiben eines Wrappers immer noch die ursprüngliche Funktion für alles, was sie tut, nutzen und die Lücken mit Ihrem Wrapper füllen.
Wrapper-Methoden können für Abstraktion, Standardisierung und Refactoring verwendet werden
Wenn Sie zum Beispiel eine Bibliothek spezieller Hilfsmethoden importieren und diese in Ihrer Anwendung verwenden, und sich später entscheiden, zu einer anderen Bibliothek zu wechseln, die Ihnen mehr Funktionalität bietet, müßten Sie dann jede Codezeile neu schreiben, die den Code aufruft vorherige Bibliotheken Methoden, um die neuen Bibliotheken Methoden aufzurufen. Mit Anwendungen, die Zehntausende von Zeilen erreichen, ist dies eine große Aufgabe. Dies passiert häufiger, wenn Software lizenziert wird und wenn sie abläuft, wird eine neue Option ausgewählt.
Um dieses Problem zu lösen, können Sie alle Helper-Methoden in Ihre eigenen Methoden einbinden. Diese Methoden sind einfach eine Zeile, die die Methoden in Ihrer importierten Bibliothek aufruft. Sie würden alle Wrappermethoden über Ihre Anwendung aufrufen, anstatt die importierte Bibliothek direkt aufzurufen.
Jetzt kommt der Nutzen aller Abstraktionen, wenn Sie die neue Bibliothek importieren wollen. Anstatt jeden Aufruf über die Anwendung neu zu schreiben, können Sie einfach nur die Wrapper-Methoden neu schreiben, die eine eigene Klasse sein sollten. Wenn Sie jetzt eine Methode in der Wrapper-Klasse ändern, wird die gesamte Anwendung, in der diese Methode verwendet wird, aktualisiert. (Siehe MVC4 .NET HTML Helper-Methoden für ein Beispiel)
Zum Thema Standardisierung können die Wrapper verwendet werden, um Standardwerte für viele der Dinge festzulegen, die beim Erstellen des Objekts manuell festgelegt werden. Aber jetzt, wenn sie im Wrapper gesetzt sind, müssen sie nicht mehr jedes Mal gesetzt werden, wenn die ursprüngliche Methode aufgerufen wird. Beispielsweise könnten Sie die Dimensionen einer Rasteransicht im Gridview-Wrapper festlegen. Wenn Sie jetzt die Wrapper-Methode in Ihrer Anwendung aufrufen, haben alle Rasteransichten die gleichen Dimensionen und weniger Codezeilen müssen in der gesamten Anwendung verwaltet werden. auch Refactoring durchführen.