Delphi-PRAXiS
Seite 3 von 8     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Schon wieder: Warum Interfaces (https://www.delphipraxis.net/190600-schon-wieder-warum-interfaces.html)

Jim Carrey 20. Okt 2016 11:36

AW: Schon wieder: Warum Interfaces
 
Kompliziert kompliziert :oops:

Ich finde dann doch den ausführlichen alten Code besser.

stahli 20. Okt 2016 11:54

AW: Schon wieder: Warum Interfaces
 
@Aviator

Das ist gut zusammengefasst.

Interfaces sind halt nur in bestimmten Konstellationen sinnvoll.
Wenn Du ein paar Klasen in einem übersichtlichen Projekt nutzt, ist der Mehraufwand von Interfaces meist nicht zu rechtfertigen.

Wenn Du aber sehr viele Klassen in einem komplexen System nutzt und möglicherweise mehrere Klassen gleiche Funktionalitäten unterstützen müssen, dann helfen Interfaces sehr stark.

Auch die Übersichtlichkeit über die Projektbestandteile wird verbessert wenn man alle genutzten Interfaces in einer Unit vor sich hat und deren Beziehungen direkter nachvollziehen kann als wenn man konkrete Klassen in unterschiedlichen Units nachschlagen muss.

Auch sehr hilfreich finde ich, dass die Units, die die Klassen deklarieren, nur an einer zentralen Stelle bekannt sein müssen.
Die Unit1 muss nicht Unit2 kennen und umgekehrt. Beide - und auch die anderen Projektbestandteile - müssen nur MyInterfaces und MyFactory kennen und haben damit Zugang zu allem Benötigten.


@Jim

So kompliziert ist das gar nicht - ich hab´s ja auch verstanden. :-)

Das ist wie vor ein paar Jahren, als alle sich fragten, was das mit den Objekten eigentlich soll... ;-)

Irgendwann findet man schon etwas, wo dann Interfaces plötzlich sinnvoll erscheinen.

Jim Carrey 20. Okt 2016 12:02

AW: Schon wieder: Warum Interfaces
 
Zitat:

So kompliziert ist das gar nicht - ich hab´s ja auch verstanden.
Das klingt total bawertend :D

Zitat:

Irgendwann findet man schon etwas, wo dann Interfaces plötzlich sinnvoll erscheinen.
Dafür muss man sie aber erst verstehen :P

DeddyH 20. Okt 2016 12:05

AW: Schon wieder: Warum Interfaces
 
Ich hab mich auch 20 Jahre davor gedrückt, als ich mich aber vor Kurzem damit beschäftigt habe, war das eigentlich simpel zu verstehen.

Aviator 20. Okt 2016 12:26

AW: Schon wieder: Warum Interfaces
 
Zitat:

Zitat von Jim Carrey (Beitrag 1351479)
Zitat:

So kompliziert ist das gar nicht - ich hab´s ja auch verstanden.
Das klingt total bawertend :D

Er hat es ja auf sich selbst bezogen. Wenn er es versteht, dann verstehen es auch alle anderen. :stupid: :spin2:
Immerhin hat er Humor. :thumb:

Zitat:

Zitat von stahli (Beitrag 1351477)
@Aviator

Das ist gut zusammengefasst.

Danke! :thumb:

Interfaces sind wie schon beschrieben sowohl positiv als auch negativ. Das Prinzip wie sie funktionieren habe ich mittlerweile doch recht gut verstanden. Und das ist immer das Wichtigste (bei allem im Leben). Man muss das Prinzip verstehen.

Nur manchmal sehe ich eben keine Notwendigkeit dafür oder weiß nicht, das an einer bestimmten Stelle ein Interface von Vorteil wäre. Da tue ich mich aktuell noch ein bisschen schwer damit.


Zur Delphi IDE kann ich sagen, dass mich lediglich das Verfolgen einer durch ein Interface implementierten Methode etwas stört. STRG + Linksklick auf den Aufruf einer Interface-Methode führt immer nur zum Interface selbst. Wenn man sich mal Visual Studio anschaut, dann führt es einen immer direkt zu der Klasse, welche oben auch instanziiert wurde. (Ich hoffe ich verwechsele das nicht)

Das würde ich mir bei Delphi auch wünschen. Aber ich will jetzt keine Diskussion starten, welche IDE in dem Fall besser wäre. Ist nur meine persönliche Meinung.

stahli 20. Okt 2016 12:57

AW: Schon wieder: Warum Interfaces
 
Die Darstellung der Interfaces in den überwachten Ausdrücken kann man sich etwas optimieren: http://www.delphipraxis.net/189852-u...ptimieren.html

Es ist leider etwas aufwendig, aber zumindest geht es.

Aviator 20. Okt 2016 12:59

AW: Schon wieder: Warum Interfaces
 
Zitat:

Zitat von stahli (Beitrag 1351489)
Die Darstellung der Interfaces in den überwachten Ausdrücken kann man sich etwas optimieren: http://www.delphipraxis.net/189852-u...ptimieren.html

Es ist leider etwas aufwendig, aber zumindest geht es.

Ja das Thema hatte ich damals mitverfolgt. Nur habe ich mich damit nicht mehr weiter auseinander gesetzt. Muss man dann für jedes Interface einen eigenen Visualizer bauen? Das wäre ja extrem aufwendig. :shock:

Jumpy 20. Okt 2016 13:04

AW: Schon wieder: Warum Interfaces
 
Ich meine einer hat es schon erwähnt, aber beim 2. durchlesen des Threads hab ich es nicht mehr gefunden:
Gerade wenn man viel mit Unittests usw. arbeitet macht die Verwendung von Interfaces die Klassen leichter testbar, da so eine entkopplung von konkreten Implementierungen stattfindet. Und da Entkopplung eines der hohen Ziele der OOP bzw. auch des CleanCodes ist, wird das halt vielfach so gepredigt. Wie schon Lemmy sagte. Es reicht nicht nur Interfaces zu verwenden und alles ist gut. Man muss sie auch richtig verwenden, im richtigen Zusammenhang.

DeddyH 20. Okt 2016 13:10

AW: Schon wieder: Warum Interfaces
 
Zitat:

Zitat von Jumpy (Beitrag 1351496)
Man muss sie auch richtig verwenden, im richtigen Zusammenhang.

Und auch nur dann, wenn die erhöhte Abstraktion Sinn macht, und nicht, um irgendwie hipp zu wirken.

Aviator 20. Okt 2016 13:32

AW: Schon wieder: Warum Interfaces
 
Zitat:

Zitat von DeddyH (Beitrag 1351498)
Zitat:

Zitat von Jumpy (Beitrag 1351496)
Man muss sie auch richtig verwenden, im richtigen Zusammenhang.

Und auch nur dann, wenn die erhöhte Abstraktion Sinn macht, und nicht, um irgendwie hipp zu wirken.

Stimme ich voll und ganz zu. Und genau dafür konnte ich noch keine "Regel" finden. Wann benutzt man sie nicht weil es hipp ist, sondern weil es Sinn macht?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.
Seite 3 von 8     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz