AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisfrage zu Interfaces

Ein Thema von Oracle · begonnen am 26. Nov 2007 · letzter Beitrag vom 29. Nov 2007
Antwort Antwort
Oracle
(Gast)

n/a Beiträge
 
#1

Re: Verständnisfrage zu Interfaces

  Alt 26. Nov 2007, 16: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz