Wenn du einen Logger implementierst, dann musst du immer ganz schön viel Boilerplate-Code schreiben.
Mit einem Wrapper, kann man jetzt ganz kleine süße Log-Writer erstellen, die einfach nur IWriteLog
implementieren.
Da stimme ich natürlich zu, das ist sicher (gerade für
OOP Anhänger wie mich) eine Vereinfachung. Ich überlege aber auch, was für einen gelegentlichen Leser des Quellcodes angenehmer ist: den gesamten Quelltext in einer
Unit mit 180 Zeilen zu studieren, oder den Code über zwei bis drei Vererbungsstufen auf drei Units verteilt, was beim Lesen etwas weniger "eindimensional" verläuft (eindimensional = Auf- und Abscrollen).
Unter diesem Aspekt müsste ich auch, um den Quellcode nicht unnötig kompliziert zu machen, die Logger Factory und deren Registrierung nicht auf zwei Units aufteilen sondern in einer einzigen Datei zusammenfassen. Dann gibt es je unterstütztem Framework nur eine statt zwei Units.
Aktuell sieht die Registrierungsunit z.B. für das Log4D Bindung so aus:
Delphi-Quellcode:
unit djLogOverLog4D;
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
interface
implementation
uses
djLoggerFactory, Log4DLogger;
initialization
RegisterFactory(TLog4DLoggerFactory.Create);
end.
Diese
Unit könnte problemlos mit dem Binding Code (
Unit Log4DLogger) zusammengefasst werden.