Einzelnen Beitrag anzeigen

Jens01

Registriert seit: 14. Apr 2009
654 Beiträge
 
#35

AW: Spring-DI / DelegatedConstructor / Factory für Dummies

  Alt 13. Feb 2012, 16:10
Delphi-Quellcode:
   AutoListe: TList<TAuto>;
type

  TAuto = class
    Test1: TMotorTest1;
    Test2: TMotorTest2;
  end;

  IMotor = interface
    function GetSchraubenAnzahl: Integer;
    procedure SetSchraubenAnzahl(const Value: Integer);
    procedure Brumm;
    property SchraubenAnzahl: Integer read GetSchraubenAnzahl write
  end;

  TMotor = class(TInterfacedObject, IMotor)
    function GetSchraubenAnzahl: Integer;
    procedure SetSchraubenAnzahl(const Value: Integer);
    FSchraubenAnzahl: Integer;
    procedure Brumm;
    property SchraubenAnzahl: Integer read GetSchraubenAnzahl write SetSchraubenAnzahl;
  end;

  TMotorTest1 = class
    Motor: IMotor;
    constructor Create;
    procedure Motortest;
  end;

  TMotorTest2 = class
    Motor: IMotor;
    constructor Create;
    procedure Motortest;
  end;

  TAuto = class
  public
    Test1: TMotorTest1;
    Test2: TMotorTest2;
  end;

implementation


constructor TMotorTest1.Create;
begin
  Motor := ServiceLocator.GetService<IMotor>;
end;

constructor TMotorTest2.Create;
begin
  Motor := ServiceLocator.GetService<IMotor>;
end;

initialization
  GlobalContainer.RegisterComponent<TMotor>.Implements<IMotor>.AsSingleton;
So, ich hoffe der Code ist richtig und verständlich.
Die Schraubenanzahlin Test1 und Test2 sind immer dieselben, was auch richtig ist, da es um denselben Motor geht.
Wenn jetzt aber das Auto in der Liste ist, dann ist die Schraubenanzahl bei jedem Auto immer noch dieselbe, aber jedes Auto hat einen anderen Motor mit einer anderen Schraubenanzahl.
Achtung: Bin kein Informatiker sondern komme vom Bau.

Geändert von Jens01 (13. Feb 2012 um 16:27 Uhr)
  Mit Zitat antworten Zitat