Sollten Sie Code in private Methoden umgestalten, wenn sie nicht mehr als einmal aufgerufen werden? [geschlossen]

8

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?

    
mcintyre321 22.04.2009, 11:05
quelle

7 Antworten

14

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.

    
Jon Limjap 22.04.2009, 11:07
quelle
3

Ja, ist es.

  • Wie oben gesagt: Es wird im Allgemeinen die Absicht des Codes klarstellen.
  • Auch wenn es nur einmal jetzt verwendet wird, erleichtert es die zukünftige Wiederverwendung des Codes.

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.

>     
sleske 22.04.2009 11:09
quelle
2

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.

    
JoshBerke 22.04.2009 11:08
quelle
1

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.

    
Fredrik Mörk 22.04.2009 11:11
quelle
1

Natürlich! Je kleiner Ihre Methoden, desto einfacher ist die Wartung Ihrer Software.

    
Arjan 22.04.2009 11:07
quelle
0

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

    
Andrew Corkery 22.04.2009 11:21
quelle
0

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.

    
Chad Grant 22.04.2009 12:13
quelle

Tags und Links