AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Was sind Interfaces und wie wendet man sie an? (brauche tut)
Thema durchsuchen
Ansicht
Themen-Optionen

Was sind Interfaces und wie wendet man sie an? (brauche tut)

Ein Thema von implementation · begonnen am 28. Sep 2008 · letzter Beitrag vom 27. Mai 2014
 
Dejan Vu
(Gast)

n/a Beiträge
 
#12

AW: Was sind Interfaces und wie wendet man sie an? (brauche tut)

  Alt 27. Mai 2014, 08:47
Zitat:
Das schafft man auch mit einer abstrakten Basisklasse.
Aber dann könnte eine Klasse nur eine Aufgabe erfüllen/Rolle. Bei Interfaces beliebig viele.
Da grübele ich jetzt widerum, was Du genau meinst: Was meinst Du da mit 'eine Aufgabe' vs. 'beliebig viele'?


Zitat:
Das mit dem nicht instantiieren gilt auch in vielen anderen Sprachen für abstrakte Klassen ( in Delphi nur in neueren Versionen; in Delphi sind nur Methoden abstrakt).
Aber ich verstehe nicht, was du mit unsichtbar meinst.
Erklärung: Ich möchte nicht, das meine Klasse (keine abstrakte) direkt instantiiert wird. Ich verlange, das sie über eine Factory instantiiert wird. Daher muss ich die Klasse verbergen, denn sie kann ja u.U. mehr, als ich nach außen hin preisgeben will. Wenn Du also die Unit einbindest (Assemblies gibts ja leider nicht), dann siehst Du nur das Interface und die Factory.
Delphi-Quellcode:
Unit myAssembly;
interface
Type
  IMyInterface = interface...
  IInterface1 = interface (IMyInterface)...
  IInterface2 = interface (IMyInterface)

function Factory<T : IMyInterface>() : T; // geht das?
implementation
Type
  TClass1 : class (TInterfacedObject, IInterface1)
  end;

  TClass2 : class (TInterfacedObject, IInterface2)
  end;

...
end.
Hier sind die Klassen 'TClass1' und 'TClass2' unsichtbar.

Zitat:
Und das sehe ich als großen Vorteil von Interfaces an: Ich kann gleiches Verhalten in unterschiedliche Klassen bzw. Klassenmodelle "injizieren", ohne dass diese voneinander wissen müssen. Und damit kannst Du dann Code wirklich wieder verwenden...
Absolut, ich habe ja nicht gegen Interfaces gewettert.

Geändert von Dejan Vu (27. Mai 2014 um 08:50 Uhr)
  Mit Zitat antworten Zitat
 


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 11:26 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 by Thomas Breitkreuz