AGB  ·  Datenschutz  ·  Impressum  







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

Interfaces -- Do and Don'ts

Ein Thema von s.h.a.r.k · begonnen am 5. Jul 2012 · letzter Beitrag vom 6. Jul 2012
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Interfaces -- Do and Don'ts

  Alt 5. Jul 2012, 17:37
Hallo zusammen,

bin gerade immer wieder am überlegen wie ich gewisse Interfaces entwickle. ich meine hier keine User Interfaces, sondern die zum programmieren dann überlege ich mir immer, wie ich gewissen Code dann verwenden will, also in dem Fall eben die Schnittstellen und entwerfe diese dann entsprechend. meist mag das okay sein, aber ich denke, dass es bei Sowas schon ein paar "Regeln" gibt? Mit Regeln meine ich Sowas wie "halte deine Interfaces schlank". was fällt euch dies bzgl noch so ein?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#2

AW: Interfaces -- Do and Don'ts

  Alt 5. Jul 2012, 18:15
Ja, da gibts ein paar:

Am bekanntesten ist wohl das InterfaceSegregationPrinciple. In meiner Liste von Prinzipien hab ich außerdem noch "Few Interfaces", "Small Interfaces" und "Explicit Interfaces gefunden. Die drei stammen wohl von Bertrand Meyer. Einen Link hab ich mir dazu nicht notiert. Aber mit den Stichworten solltest du was finden.

Das sind jetzt die, die sich explizit auf Interfaces beziehen. Daneben gelten aber noch zig andere, die aber genauso für Klassen gelten. Soll ich da auch noch welche von Posten? Meine Liste ist lang (ich finde solche Prinzipien oder "Daumenregeln" außerordentlich interessant. Ein bisschen was dazu findest du hier: http://www.christian-rehn.de/tag/daumenregeln/

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Interfaces -- Do and Don'ts

  Alt 6. Jul 2012, 04:13
Vielleicht nicht das was du hören möchtest...

Wenn ein Interface nur von einer einzigen Klasse implementiert wird und auch kein Interface für Automatisierung ist, dann sollte man kein Interface verwenden.
Grund:
Soll das Interface geändert werden, dann muss an mindestens zwei Stellen geändert werden - in der Deklaration des Interface und in der implementierenden Klasse.
Da dies doppelte Arbeit bedeutet wird der Programmierer manchmal auf eine Änderung verzichten, obwohl die Änderung eine Verbesserung wäre.

Fazit:
Interfaces müssen sorgfältig geplant werden!
Eine spätere Änderung kann je nach Anzahl der implementierenden Klassen recht aufwändig werden.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Interfaces -- Do and Don'ts

  Alt 6. Jul 2012, 07:24
Wenn ein Interface nur von einer einzigen Klasse implementiert wird und auch kein Interface für Automatisierung ist, dann sollte man kein Interface verwenden.
Da fehlt noch mindestens die Einbindung von DLLs. Denn um Objekte dorthin zu liefern, braucht man Interfaces (abgesehen von Packages, aber...).

Und dann gibt es noch das Prinzip die Implementierungen abzukoppeln:
http://www.nickhodges.com/page/Why-Y...eferences.aspx
Da es da in Delphi ein paar deutliche Einschränkungen gibt, kann ich mich damit als generelles Prinzip nicht wirklich anfreunden, aber es ist eigentlich sehr interessant.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Interfaces -- Do and Don'ts

  Alt 6. Jul 2012, 09:38
Interfaces beschreiben das Verhalten sowie die Interaktion der einzelnen Subsysteme bzw. Teilen davon. Klassen implementieren dieses Verhalten.

Das ist ein gravierender Unterschied, und ich würde bei komplexen Systemen immer erst die Schnittstellen definieren und später dann das Verhalten.

Alleine schon Konstrukte wie:
Delphi-Quellcode:
Type
  TCombinedClass = Class (TSomeBaseClass, IListener, IRemover, IPad, IPod)
zeigen, wie klarer ich Systeme entwerfen kann. Denn ich beschreibe das Verhalten der einzelnen Interfaces (IListener, IRemover....) separat und kann dieses Verhalten dann meinen Klassen zuweisen.

Das geht alleine mit Klassen nicht.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: Interfaces -- Do and Don'ts

  Alt 6. Jul 2012, 09:57
Na, das ist doch schon mal ein Anfang Danke schon mal für die ganzen Ideen! So hatte ich mir das gedacht.

Am Schluss gießen wir dann noch ein Buch mit 1000 Seiten Umfang draus
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  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 05:36 Uhr.
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