Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Funktionsbibliotheken, Code-Organisation - Wie macht Ihr das?

  Alt 4. Jan 2017, 15:28
Ich mache das ganz einfach...

Erstmal die die Voraussetzung eine entsprechende Factory, die die Klassen zu den Interfaces erzeugen kann.
Die Interfaces sind themenbezogen in Definitions-Units. Die Implementation ist NIE im Interface teil der Unit, somit linkt auch keiner "dagegen".

Ggf. gibt es noch einen IFDEF für die Unittests, damit man doch an die Klasse "ran kommt".

Ich brauche dann überall nur die Factory und die Interface Unit an zu geben.

ggf. nutze ich auch das Singelton Pattern - wie es Delphi auch macht mit.

Services.Default.Whatever.

Es gibt in meinem FDK auch noch die Möglichkeit, nur für einen Moment ein Interface zu erzeugen.

Beispiel:

Delphi-Quellcode:
begin
  TAnyFactory.Default.CallIfExists<IFOO>(Procedure (AFoo : IFoo)
    begin
      AFoo.Whatever;
    end,'special'); // Optionaler Selector
end;
Wenn die Unit, die IFoo Implementiert im Projekt enthalten ist wird die Funktionalität aufgerufen, sonst nicht.
Und die Instance existiert nur für die Dauer der anonymen procedure.
(Bei Klassen mit autofree)

Somit kann ich durch hinzufügen, z.B. eines Plugin,s Funktionalitäten an und abschalten.

Mavarik
  Mit Zitat antworten Zitat