Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Nicht gestarteter TThread wird nicht beendet - Verständnisproblem: Thread und Ev

  Alt 9. Mär 2015, 10:08
Es gibt eine zentrale Instanze "Waschsalon" die für die Anwendung "Waschmaschinen" bereitstellt.

Der "Waschsalon" bekommt seine "Waschmaschinen" von der "HardwareAnsteuerungFactory", davon kann es aber mehrere geben.
Eine für PCI, USB, WLAN oer was uns die Zukunft noch so alles bringt.
Eventuell werden diese auch erst zur Laufzeit der Anwendung per DLL eingebunden(z.B. eine DLL je Hardwaretyp).

Der "Waschsalon" braucht nicht zu wissen, woher die "Waschmaschinen" kommen.
Deshalb ist es sinnvoll, das jede "HardwareAnsteuerungFactory" ihre "Waschmaschinen" erzeugt und beim "Waschsalon" registriert.
Delphi-Quellcode:
IWaschsalon = interface
  ['{240F248A-E379-44B3-ADBA-B08B3DE26567}']
  function GibtWaschmaschineMitDerNummer(WaschmaschinenNummer : Integer) : IWaschmaschine;
  
  function Count: Integer; // Anzahl der registrierten Maschinen
  function GetItem(AIndex: Integer): IWaschmaschine;
  procedure Register(AWaschmaschine: IWaschmaschine); // Maschine hinzufügen
end;


THardwareAnsteuerungFactory.RegisterWaschmaschinen(AWaschsalon: IWaschsalon);
var
  Waschmaschine: TWaschmaschine;
begin
  for i := 0 to FItems.Count - 1 do
  begin
    Waschmaschine := TWaschmaschine.Create(FItems[i]);
    AWaschsalon.Register(Waschmaschine);
  end;
end;
  Mit Zitat antworten Zitat