Hallo zusammen, mir ist klar: "1000 Wege führen nach Rom" bzw. zu einer Lösung in C. Jedoch frage ich mich, was geschickter wäre. Problem: Ich habe ein (Software)-Modul, das mir Daten-Pakete versendet und empfängt. Nun stelle ich mir die Frage: Erstelle ich nur einen Callback der mir als Parameter den Grund liefert, oder erstelle ich für jede Möglichkeit ein eigenen Callback, wobei im Fehlerfall wäre es ein ERR_Callback mit Parameter? Somit würde im aufrufendem Modul entweder eine Funktion existieren die den Grund prüft oder halt für jeden Grund eine eigene Funktion. Wie würdet ihr das lösen? Oder was spricht für die eine oder andere Lösung? Gruß
KISS Prinzip. Wieso möchtest du das unnötig aufbauschen? Neuer Datentyp mit Gründen als Enum, übergeben fertig. Gegenfrage: was würdest du bei einem anderen Projekt erwarten wenn du auf eine solche triffst?
Ja bis jetz bin ich auch den Weg gefahren: 1 Callback mit enum Parameter. Und dann seh ich durch Zufall eine Lib. für CmdSend oder so (UART) in C++ vom Arduino (ich arbeite mit keinem Arduino, sondern mit einem SAM4E) in der mehrere Callbacks verwendet wurden. Da hat sich mir die Frage gestellt, ob das evtl. einen Vorteil hat oder ähnliches.
Adam P. schrieb: > Da hat sich mir die Frage gestellt, ob das evtl. einen Vorteil hat oder > ähnliches. Überlege Dir, wie Du es als Nutzer Deiner API gerne hättest. Wenn im Erfolgsfall und im Fehlerfall komplett unterschiedliche Sachen passieren, dann könnten 2 callbacks praktisch sein. Wenn Du in unterschiedlichen Situationen, komplett unterschiedliche Parameter hast, die das eingetretene Ereignis beschreibt, dann wäre das auch ein Grund lieber mehr als einen Callback zu verwenden.
Dann ist für mich die Frage erstmal geklärt. Wie J. Fourier sagte, ich werd mich an KISS halten und solange ich nicht in den Zwang komme mehrere Callbacks nutzen zu müssen, bleibt es bei einem :-) Danke euch erstmal!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.