AGB  ·  Datenschutz  ·  Impressum  







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

Schon wieder: Warum Interfaces

Ein Thema von exilant · begonnen am 19. Okt 2016 · letzter Beitrag vom 21. Okt 2016
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#1

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 15:15
Ob ich nun Supports() aufrufen muss oder Dinge der Art
Delphi-Quellcode:
if MyObject is TDingens then
  TDingens(myObject).Machwas;
, komfortabler wird es nicht.

[edit] Nachtrag: stahli hat Recht, man kann das übrigens auch anders formulieren.
Delphi-Quellcode:
Supports(Test, IIntf2, Intf2);
if Assigned(Intf2) then
  Intf2.SomeMethod3;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 15:23
Hmm, ja stimmt auch wieder.

Was sagt denn der TE "Exilant" mittlerweile zu dem Thema? Ist das alles jetzt etwas verständlicher?
  Mit Zitat antworten Zitat
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 16:28
Was sagt denn der TE "Exilant" mittlerweile zu dem Thema? Ist das alles jetzt etwas verständlicher?
Zunächst mal vielen Dank an alle Schreiber hier. Eine Menge Input. So eine Resonanz habe ich nicht erwartet. Das Thema treibt doch viele um. Wie weit mich das weiter gebracht hat kann ich noch nicht abschätzen. Ich muss mir das erst mal in Ruhe zu Gemüte führen. Dazu werde ich etwas Zeit brauchen. Dieser Thread wird dazu sehr nützlich sein. Danke auch besonders an stahli, der mich auf diesen Thread hingewiesen hat.

Das mit der "Verständlichkeit" war wie ich geschrieben hatte nicht so das Problem. Interfaces setze ich seit Ewigkeiten für die Office Atomation ein. Ausserdem kommuniziere ich hier mit OPC Servern (nicht UA) - das ist auch COM/DCOM und das klappt. Auch wenn die Programmierung von dem Zeugs eine Strafe ist.

Ich suche/suchte ja nach dem Nutzen von Interfaces in eigenen Anwendungen. Und in denen verzichte ich natürlich auf COM/DCOM und DLLs solange ich es selbst in der Hand habe. Interfaces als wie Lemmy es sagt "logische oder zwingende Weiterentwicklung klassicher OOP" zu sehen: Da muss ich erstmal hinkommen.

Ich denke das in einigen Beiträgen in diesem Thread echtes Gold steckt und mich die Nützlichkeit von Interfaces in eigenen Anwendungen jenseits von COM erkennen lässt. Ich werde lesen, testen und wieder lesen.

Nochmal vielen Dank an alle. Ich werde mich bestimmt noch zu dem Thema melden sowie ich das hier durchgeackert habe. Ich denke da werden noch ein paar Dinge offen bleiben...
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 16:44
Freut mich.

Ein bisschen kann man das vielleicht auch sehen wie die Sinnhaftigkeit der Trennung von Businesslogik und GUI. (Das werden ja hier alle Beteiligten für nützlich halten.)

Interfaces trennen dann verschiedene Teile eines Moduls nochmal klarer voneinander ab und reduzieren noch weitere vorhandene Abhängigkeiten (und verbessern weiter die Übersichtlichkeit).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
hanvas

Registriert seit: 28. Okt 2010
171 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 17:31

Ich suche/suchte ja nach dem Nutzen von Interfaces in eigenen Anwendungen. Und in denen verzichte ich natürlich auf COM/DCOM und DLLs solange ich es selbst in der Hand habe. Interfaces als wie Lemmy es sagt "logische oder zwingende Weiterentwicklung klassicher OOP" zu sehen: Da muss ich erstmal hinkommen.
Eine Sache die schnell einleuchtet ist das man Methoden von Klassen auf Objekte die aus unterschiedlichen Klassenhyrarchien stammen anwenden kann. Ich finde TFortbewegung2 einfacher zu warten, gut zu verstehen und typsicherer als TFortbewegung1.

Code:

type IBeweglich = interface
      end;

     TAuto = class(TSache,IBeweglich)
     end;

     TVogel = class(TLebendig,IBeweglich)
     end;

     TFortbewegung1=class(TAktion)
     public
      function begwege(was : TAuto) : Integer; overload;
      function begwege(was : TLebendig) : Integer; overload;
     end;

     TFortbewegung2=class(TAktion)
      function begwege(was : IBeweglich) : Integer;
     end;
cu Ha-Jö
  Mit Zitat antworten Zitat
frapo

Registriert seit: 8. Feb 2012
Ort: OWL
32 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 17:41
Vielleicht findet man leichter Zugang zu dem Thema, wenn man sich parallel dazu Entwurfsmuster mal ansieht? z.b. https://www.philipphauer.de/study/se...n/strategy.php.

Ein Klassiker für mich wäre eine Anwendung, die verschiedene "Datensenken" verfügbar machen möchte. Beispielsweise möchte man das Speichern in einer oder mehreren Datenbanksystemen möglich machen und/oder auch das Speichern als Plaintext, XML-File, CSV-Datei etc.

Da bietet sich doch die Nutzung von Interfaces gerade zu an.
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 16:57
Delphi-Quellcode:
Supports(Test, IIntf2, Intf2);
if Assigned(Intf2) then
  Intf2.SomeMethod3;
Könnte man das nicht kürzen?

Delphi-Quellcode:
if Supports(Test, IIntf2, Intf2) then
  Intf2.SomeMethod3;
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 16:59
Delphi-Quellcode:
Supports(Test, IIntf2, Intf2);
if Assigned(Intf2) then
  Intf2.SomeMethod3;
Könnte man das nicht kürzen?

Delphi-Quellcode:
if Supports(Test, IIntf2, Intf2) then
  Intf2.SomeMethod3;
Siehe Beitrag von DeddyH. Da hat er es genau so gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#9

AW: Schon wieder: Warum Interfaces

  Alt 20. Okt 2016, 17:22
Richtig, ich wollte ja nur zeigen, dass es so oder so geht, je nach persönlicher Vorliebe
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 18:19 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