Einzelnen Beitrag anzeigen

_BlackDragon_

Registriert seit: 4. Dez 2007
Ort: Eschweiler
64 Beiträge
 
#8

AW: Architektur / Projektstruktur / zirkuläre Referenz Problem

  Alt 28. Dez 2011, 16:17
Ok, das Prinzip via Interfaces hab ich im Ansatz verstanden und werde mein Wissen diesbezüglich noch erweitern.

Was mir allerdings nicht ganz klar ist, wieso ich in die Interface-Unit die "Objekt"-Units einbinden "muss". Ich habe sie mal zum Testen auskommentiert und die Klassendeklarationen (TEngine und TManager1) in den Interface-Teil der Units verschoben. So ist deren Sichtbarkeit gewährleistet. Oder blick ich grad nicht durch?

Habe die entsprechenden Stellen hier nur auskommentiert.

Delphi-Quellcode:
unit uInterfaces
interface

//uses
// Engine, Manager1;

type
  IManager1 = interface
    [Shift+Strg+G]
  end;

  IEngine = interface
    [Shift+Strg+G]
    function GetManager1 : IManager1;
    property Manager1: IManager1 read GetManager1;
  end;
Delphi-Quellcode:
unit Engine;
interface
//implementation
uses
  uInterfaces;

type
  TEngine = class(TInterfacedObject, IEngine)
  private
    FManager1: IManager1;
    function GetManager1 : IManager1;
  end;

implementation
...
Delphi-Quellcode:
unit Manager1;
interface
//implementation
uses
  uInterfaces;

type
  TManager1 = class(TInterfacedObject, IManager1)
  private
    FEngine: IEngine;
  protected
  public
    constructor Create(e: IEngine);
  end;

implementation
...
Sollte doch auch so funktionieren. Oder übersehe ich etwas?
  Mit Zitat antworten Zitat