AGB  ·  Datenschutz  ·  Impressum  







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

Uses: Interface vs. Implementation Section

Ein Thema von Martin W · begonnen am 16. Dez 2011 · letzter Beitrag vom 22. Dez 2011
Thema geschlossen
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#1

Uses: Interface vs. Implementation Section

  Alt 16. Dez 2011, 14:00
Delphi-Version: XE
Hallo,


ich kann eine Unit sowohl im Interface als auch im Implementation Bereich unterbringen:

Delphi-Quellcode:
unit Test;

interface

uses
  BeispielUnit;

implementation

uses
  BeispielUnit;

end.

Ich meine bereits häufiger gelesen zu haben, dass nur die Units in den Interface Bereich sollen, die es mindestens müssen.

Welche Auswirkungen hat dies? Hat dies Auswirkungen auf z.B. Performance oder Ressourcennutzung?


Danke,
Martin W.
 
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Uses: Interface vs. Implementation Section

  Alt 16. Dez 2011, 14:16
Wirklich nützlich wird diese Trennung erst bei zirkulären Unitreferenzen:
Delphi-Quellcode:
unit UnitA;

interface

uses UnitB;

implementation

end.
//------------------------
unit UnitB;

interface

uses UnitA;

implementation

end.
--> Gibt einen Fehler!

Indem wir die Klausel in der einen Unit in die nächste verschieben, können wir das umgehen:

Delphi-Quellcode:
unit UnitA;

interface

uses UnitB;

implementation

end.
//------------------------
unit UnitB;

interface

implementation

uses UnitA;

end.
Das ist meines Erachtens der einzige sinnvolle Grund, die Klausel im implementation-Teil zu nutzen.
Ansonsten finde ich es schöner, alles zentral im interface-Teil zu haben, weil dann jeder Leser sofort sehen kann, welche Abängigkeiten die Unit hat.
Dies ist aber Geschmackssache.

Einen Performance- oder Resourcenunterschied kann ich mir nicht vorstellen.
 
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.213 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Uses: Interface vs. Implementation Section

  Alt 16. Dez 2011, 14:19
Wir haben möglichst alle Einträge im Interface-Bereich.
Dann merken wir sehr schnell wenn einer nicht aufgepasst hat und uns eine zirkulären Unitreferenzen eingebrockt hat.
Windows Vista - Eine neue Erfahrung in Fehlern.
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#4

AW: Uses: Interface vs. Implementation Section

  Alt 16. Dez 2011, 14:58
Jupp, möglichst immer in das Interface.

- da merkt man, wie schon erwähnt, ob man sich irgendwo Kreisbeziehungen eingehandelt hat.

- und die dort angegebenen Units sind "immer" schon initialisiert, bevor irgendein Code der eigenen Unit ausgeführt wird, bzw. externe Units werden nicht schon freigegeben, bevor nicht der letzte Code fertig ist. (bei Letzterem abgesehn von unglücklich gesteuerten Threads)



Ist eine Unit in der Implementation angegeben, dann kann es sein, daß deren Initializations-Abschnitt noch garnicht abgearbeitet wurde und man schon auf etwas noch nicht Existierendes zugreifen will.
Genauso andersrum beim beenden des Programms, bzw. beim Entladen der DLL/BPL ... dort kann dann schon wasweg sein, obwohl man es noch braucht.
Ein Therapeut entspricht 1024 Gigapeut.
 
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Uses: Interface vs. Implementation Section

  Alt 16. Dez 2011, 17:13
Auswirkungen auf den Performanceverbrauch / die Ressourcennutzung hat es nicht, wenn ich alles in den Interfacebereich lege?

Hier steht es anders herum, leider auch ohne Begründung: http://www.delphi-treff.de/object-pa...maufbau/#c4934

Geändert von Martin W (16. Dez 2011 um 17:25 Uhr)
 
Benutzerbild von sx2008
sx2008

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

AW: Uses: Interface vs. Implementation Section

  Alt 16. Dez 2011, 22:36
Auswirkungen auf den Performanceverbrauch / die Ressourcennutzung hat es nicht, wenn ich alles in den Interfacebereich lege?
Der Compiler hat weniger Arbeit wenn man Units wann immer möglich im Implementation-Abschnitt importiert.
 
Thema geschlossen


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 07:23 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