Extract-Funktion

Zweck: Umwandeln eines Codefragments in dessen eigene Funktion.

Anwendung: Wenn Sie über ein Fragment von vorhandenem Code in einer Funktion verfügen, das von einer anderen Funktion aufgerufen werden muss.

Vorteile: Sie könnten diesen Code kopieren und einfügen, dies würde jedoch zu einer Duplizierung führen. Eine bessere Lösung besteht darin, dieses Fragment in eine eigene Funktion umzugestalten, die von jeder anderen Funktion aufgerufen werden kann.

Vorgehensweise:

  1. Markieren Sie den zu extrahierenden Code:

    Screenshot des folgenden Codes, der hervorgehoben wurde, um extrahiert zu werden: Doppelter Bereich = M_PI * readious * radious;.

  2. Führen Sie dann eine der folgenden Aktionen aus:

    • Tastatur
      • Drücken Sie STRG+R und dann STRG+M. (Ihre Tastenkombination kann je nach ausgewähltem Profil unterschiedlich sein.)
      • Drücken Sie STRG+., um das Menü Schnellaktionen und Refactorings aufzurufen, und klicken Sie im Kontextmenü auf Funktion extrahieren (experimentell).
    • Maus
      • Klicken Sie auf Bearbeiten > Umgestalten > Funktion extrahieren (experimentell).
      • Klicken Sie mit der rechten Maustaste auf den Code, und klicken Sie auf das Menü Schnellaktionen und Refactorings. Klicken Sie dann im Kontextmenü auf Funktion extrahieren (experimentell).
      • Klicken Sie auf das Glühbirnensymbol, das am linken Rand angezeigt wird, und wählen Sie im Kontextmenü Funktion extrahieren (experimentell) aus.
  3. Geben Sie im Fenster Funktion/Methode extrahieren (experimentell) den neuen Funktionsnamen ein, wählen Sie aus, wo der Code platziert werden soll, und klicken Sie auf OK.

    Screenshot des Dialogfelds „Funktion extrahieren“, das den Funktionsnamen erhält und die Angabe, ob sie oberhalb oder unterhalb der aktuellen Funktion erstellt werden soll.

  4. Die neue Funktion wird am angegebenen Ort erstellt, ein Funktionsprototyp wird in der entsprechenden Headerdatei erstellt und der ursprüngliche Code wird so geändert, dass er die Funktion aufruft.

    Screenshot der erstellten Funktion, die den extrahierten Code enthält. Die Definition lautet „void CalculateArea(double radius)“.