AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Vererbung bei Interfaces - Gut oder schlecht?
Thema durchsuchen
Ansicht
Themen-Optionen

Vererbung bei Interfaces - Gut oder schlecht?

Offene Frage von "r2c2"
Ein Thema von Der schöne Günther · begonnen am 27. Jan 2014 · letzter Beitrag vom 27. Jan 2014
Antwort Antwort
r2c2

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

AW: Vererbung bei Interfaces - Gut oder schlecht?

  Alt 27. Jan 2014, 18:51
Hm...

- Vererbung sollte man *immer* mit Bedacht einsetzen. Das ist wie ne Kettensäge. Richtig eingesetzt sehr hilfreich. Falsch eingesetzt gefährlich. Wenn man vererbung macht, sollte man einen guten Grund dazu haben.
- Vererbung unter Interfaces ist nicht per se schlimm. Aber sie ist seltenen sinnvoll.
- Häufig ist Vererbung unter Interfaces schlecht, weil sie Klassen, die Interface A implemenmtieren, zwingt, auch Interface B zu implementieren, was rein logisch betrachtet oft nicht nötig oder sinnvoll ist. Deshalb gibt es das Interface Segregation Principle (ISP), das besagt, dass Interfaces getrennt sein sollten. Bob Martin formuliert das so: "Clients sould not be forced to depend on methods that they do not use".
- DAs bringt uns noch zu was ganz anderem: Interfaces sind kein Selbstzweck. Sie sind *nur* dann sinnvoll, wenn es auch Variablen gibt, die mit dem Interface-Typ deklariert werden. Wenn du keine einzige Variable vom Typ IMyFancyInterface hast, sondern nur davon ableitest, ist das Interface schon falsch, weil wertlos. Es ist zusätzlicher Code, den keiner braucht. Ob das in deinem Fall so ist, kann ich nicht beurteilen, aber mir drängt sich diese Befürchtung auf.
- die Beziehung zum Decorator sehe ich momentan nicht

mfg

Christian
Kaum macht man's richtig, schon klappts!
  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 15:05 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