public void ThisStructureIsRepeatedALot(){ Bla bla = ProcessBla(); if (bla != null) { // this part actually differs } } public void Addition(){ Bla bla = ProcessBla(); if (bla != null) { bla+=foo; // ... more complicated stuff } } public void Division(){ Bla bla = ProcessBla(); if (bla != null) { bla/=foo; // ... more complicated stuff differs from above } } // etc
Frage von Spielzeug Beispielstruktur beispielhaft genannten SchnipselC# OOP - Abstractify vorformulierten/Blackbox für die Wiederverwendung
Für eine Reihe von verschiedenen Methoden, die ähnlich vorformulierten vor bedingten haben ihre unterschiedlichen Code aufrufen, was ist der richtige Weg es abstrahieren, so dass nicht jede dieser ähnlichen Methoden 2 Zeilen (ohne Klammer) auf Kesselplatte verschwenden muss?
Große existiert schreiben können Frage. Schade, ich habe keine Ahnung, wonach du fragst: D –
Eine andere Möglichkeit besteht darin, eine Fortsetzung an ProcessBla selbst zu übergeben: 'ProcessBla (bla => {// komplizierte Sachen hier});'. – Evk
Es ist nicht klar, warum jede Methode 'ProcessBla()' (vielleicht falsches Design hier) aufrufen würde, aber ich würde 'void' mit dem Delegaten hinzufügen (zB' Aktion '), die es ausführen, falls das Ergebnis der Verarbeitung nicht null ist , indem man kompliziertes Zeug weiterleitet, da Lambda kürzer ist. –
Sinatr