Einzelnen Beitrag anzeigen

Oracle
(Gast)

n/a Beiträge
 
#7

Re: Verständnisfrage zu Interfaces

  Alt 26. Nov 2007, 17:19
Also ich habe hier verschiedene Kameras von verschiedenen Herstellern die ich über deren API Funktionen anspreche.
Einige Funktionen haben alle Kameras gemeinsam, wie OpenKamera, BelichtungszeitEinstellen, oder Bildmachen.
Diese Funktionen will ich in ein Interface packen so dass ich die Kameras ohne weiteres untereinander austauschen kann.

Beispiel:

Delphi-Quellcode:
  ICamera = interface
    procedure Initialize;
    function getBild:SpectrumArray;
    procedure setExposureTime(msTime : integer);
    function getExposureTime: integer;
  end;

  TKamera1 = class(TInterfacedObject, ICamera)
    procedure Initialize;
    function getBild:SpectrumArray;
    procedure setExposureTime(msTime : integer);
    function getExposureTime: integer;
  end;

Nun haben einige der Kameras noch funktionen die andere nicht bieten, und somit würde ich bei diesen Kameras noch andere Funktionen hinzufügen wollen.

Beispiel:

Delphi-Quellcode:
  TKamera2 = class(TInterfacedObject, ICamera)
    procedure Initialize;
    function getBild:SpectrumArray;
    procedure setExposureTime(msTime : integer);
    function getExposureTime: integer;
    procedure setTriggerTimeOut(mode : integer);
    function getTriggerTimeOut:integer;
  end;
Ansprechen möchte ich die Kameras allerdings über das Interface, so dass sie wie gesagt untereinander austauschbar sind. Und dass ich ohne weiteres neue Kameras hinzufügen kann.

Delphi-Quellcode:
var
  Cam : ICamera;
begin
  Cam := TKamera1.create;
  Cam.setExposureTime(1000);
end;
Gibt es da vielleicht ein geschicktes Entwurfsmuster was mir dabei helfen kann?

// Edit: Fehler mit create behoben
  Mit Zitat antworten Zitat