Lohnt es sich, private Methoden für Code zu extrahieren, der nur einmal in einer Klasse aufgerufen wird, oder den Code in der übergeordneten Methode (vielleicht) mit einem Kommentar zu belassen, der sagt, was er tut?
Es lohnt sich immer Methoden zu extrahieren, wenn es die Absicht des Codes verdeutlicht.
Dies gilt insbesondere für sehr lange Methoden. Während Kommentare gut sind, werden sie nicht (zumindest nicht sehr solide) abgegrenzt, wo der Prozess endet und wo der nächste beginnt. Manchmal werden gewöhnliche Abstraktionen erst dann deutlicher, wenn Sie nach die Methode extrahiert haben.
Wenn Sie ein automatisiertes Komponententest durchführen möchten (nicht unbedingt TDD), wird es auch sehr viel einfacher sein, kleinere Teile von Methoden zu testen - obwohl Sie Ihre Methoden je nach Test möglicherweise veröffentlichen müssen Rahmen, den Sie verwenden.
Der Punkt ist, dass Sie mit kleineren Methoden nichts falsch machen können, besonders wenn sie beschreibende Namen haben.
Ja, ist es.
Ein zusätzlicher Punkt: Für einfache Hilfsmethoden möchten Sie sie möglicherweise statisch machen (so dass sie nicht von dem Zustand ihrer Instanz abhängen oder diesen ändern), dann können Sie sie für eine einfachere Wiederverwendung veröffentlichen.
>Es ist ein großer Vorteil, dies zu tun. Es geht darum, Informationen zu verstecken und Absichten klar zu machen.
Beim Refactoring to Code haben sie diese Kompositionsmethoden aufgerufen, in denen Sie eine große Methode in viele kleinere Methoden aufteilen. Das macht zwei Dinge.
Zuerst reduziert es die Menge an Informationen, über die Sie sich bei der Arbeit an der übergeordneten Methode Sorgen machen müssen.
Zweitens sollte der Name der Methode ihre Absicht anzeigen, die den Code lesbarer macht.
Für mich hängt es davon ab, wie groß der Code ist und wie er mit der Elternmethode zusammenhängt. Wenn es viel Code ist (sagen wir mehr als 5 bis 10 Zeilen Code oder mehr als 50% der Gesamtmenge an Code in der Elternmethode), würde ich es für eine Code-Struktur und Lesbarkeit in eine private Methode extrahieren. Ansonsten würde ich es in der Elternmethode mit einem beschreibenden Kommentar belassen.
Ich denke, dass Wartbarkeit und Lesbarkeit beeinträchtigt werden können, wenn zu viele, sehr kleine Methoden im Code vorhanden sind. Ich strebe nach einer guten Balance. Aber wenn ich zweifle; Ich extrahiere es als private Methode.
Nur eine dumme Schätzung, aber ich würde sagen, dass die meisten privaten Methoden nur an ein paar Stellen in der Durchschnittsklasse aufgerufen werden. Wie oben erwähnt, macht es Ihren Code jedoch viel lesbarer und einfacher zu testen / zu warten, wenn Sie alle Funktionen in logische Blöcke aufteilen. Refactoring ist eine gute Gewohnheit
Sie sollten basierend auf dem Design Ihrer API & amp; Methoden / Eigenschaften, die bei Verwendung an anderer Stelle verfügbar gemacht werden sollen. Du solltest nicht darüber nachdenken, ob es benutzt wird, um zu entscheiden, ob es privat / öffentlich gemacht wird oder nicht.
Tags und Links scope oop coding-style private