Als «method-overloading» getaggte Fragen


2
Warum unterstützt PHP keine Funktionsüberladung?
Ich frage mich, ob eines der Hauptmerkmale einer Programmiersprache die Fähigkeit ist, Funktionen über Argumente zu überladen. Ich denke, dass es im Kontext der objektorientierten Programmierung wesentlich ist. Wird es absichtlich zurückgelassen und ist es nicht erlaubt? Oder ist Überladen keine gute Praxis?

5
Reicht es aus, wenn Methoden nur nach dem Argumentnamen (nicht nach dem Typ) unterschieden werden?
Reicht es aus, Methoden nur nach dem Argumentnamen (nicht nach dem Typ) zu unterscheiden, oder ist es besser, ihn expliziter zu benennen? Zum Beispiel T Find<T>(int id)vs T FindById<T>(int id). Gibt es einen guten Grund, es expliziter zu benennen (dh hinzuzufügen ById), anstatt nur den Argumentnamen beizubehalten? Ein Grund, an …

2
Warum definieren Methoden mit einer unbegrenzten Anzahl von Parametern häufig Überladungen mit weniger Parametern?
Beispielsweise weist die System.IO.Path.CombineMethode in .NET die folgenden Überladungen auf: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Was ist der Sinn der letzten drei? Die erste würde sie alle abdecken, als ob Sie genau hinschauen, verwendet es das paramsSchlüsselwort. Das Argument der Abwärtskompatibilität würde nur die …


4
Sollten wir überladene Methoden umbenennen?
Angenommen, eine Schnittstelle enthält die folgenden Methoden: Car find(long id); List<Car> find(String model); Ist es besser, sie so umzubenennen? Car findById(long id); List findByModel(String model); In der Tat muss jeder Entwickler, der diese API verwendet, nicht in der Benutzeroberfläche nach möglichen Argumenten für anfängliche find()Methoden suchen . Meine Frage ist …


1
Warum gibt es in PHP keine Möglichkeit, statische Eigenschaften zu überladen?
Intro Mit PHP können Sie Methodenaufrufe und Eigenschaftenzugriffe überladen, indem Sie magische Methoden in Klassen deklarieren . Dies ermöglicht Code wie: class Foo { public function __get($name) { return 42; } } $foo = new Foo; echo $foo->missingProperty; // prints "42" Neben dem Überladen von Instanzeigenschaften und Methoden können wir …

2
Überlast oder optionale Parameter
Wenn ich eine Funktion habe, die möglicherweise einen bestimmten Parameter empfängt oder nicht, ist es besser, die Funktion zu überladen oder optionale Argumente hinzuzufügen? Wenn jeder seine Höhen und Tiefen hat - wann würde ich jeden verwenden?



4
Wie kann verhindert werden, dass doppelte Datenzugriffsmethoden zum Abrufen ähnlicher Daten verwendet werden?
In fast jedem Projekt, an dem ich mit einem Team arbeite, scheint sich das gleiche Problem einzuschleichen. Jemand schreibt UI-Code, der Daten benötigt, und schreibt eine Datenzugriffsmethode: AssetDto GetAssetById(int assetId) Eine Woche später arbeitet jemand anderes an einem anderen Teil des Antrags und benötigt ebenfalls einen, AssetDtoaber jetzt auch "Genehmiger" …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.