Hallo zusammen,
ich erstelle grade Delphi Header für eine
von mir in C geschriebene Library. Die technische Umsetzung ist kein Problem, allerdings stellen sich mir einige Fragen bezüglich des Code-Designs / der Organisation der Klassen:
- Was bevorzugt ihr persönlich bezüglich der Kapselung?
- Die Low-Level C-API komplett in Delphi Klassen kapseln, um möglichst OOP konform zu sein und bestmöglich alle Delphi Sprachfeatures auszunutzen
- Die Low-Level C-API 1 zu 1 übersetzen und dann zusätzlich noch eine Unit mit Wrapper-Klassen erstellen (macht ZLibEx z.b. so)
Dann zur Aufteilung der Klassen. Die C-Lib hat 3 große Module (nennen wir sie A, B, C) und jedes Modul beinhaltet mehrere Typen und Klassen, welche ich in unterschiedliche Header-Files aufgeteilt habe. In C ist das kein Problem, da ich alle diese Header in einem "Main-Header" zusammenfassen kann, so dass der User letztlich nur diese eine Datei inkludieren muss. Bei Delphi ist das natürlich anders.
- Was ist eure persönliche Präferenz im Bezug auf Aufteilung von Klassen auf Units?
- Möglichst nah an der C-Lib halten und Typen/Klassen logisch auf verschiedene Units verteilen (der User muss dann bei Verwendung diverse Units mit in uses
aufnehmen)
- Alles in eine einzelne Unit packen (bzw. höchstens API und Wrapperklassen splitten)
- Nach Modulen auf einzelne Units verteilen (wobei dann trotzdem noch 1-2 extra Units inkludiert werden müssen, welche gemeinsame Typen enthalten)
Lasst mal eure Meinung hören!
Viele Grüße
Zacherl