Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Units im Interface- oder im Implemention-Teil laden (https://www.delphipraxis.net/100245-units-im-interface-oder-im-implemention-teil-laden.html)

Cyberbob 25. Sep 2007 00:13


Units im Interface- oder im Implemention-Teil laden
 
Wo sollte man eigene Units eintragen? Im Interfaceteil oder im Implementationteil.
Macht das eigentlich einen unterschied?

Gruß,
Christian

Flare 25. Sep 2007 01:23

Re: Units im Interface- oder im Implemention-Teil laden
 
Es macht einen Unterschied, da die units, die im Interface-Teil angegeben werden, nicht auf sich gegenseitig verweisen dürfen.

Das geht also nicht:
Delphi-Quellcode:
unit unit1;

interface

uses unit2;
Delphi-Quellcode:
unit unit2;

interface

uses unit1;
Im Implementation-Teil jedoch dürfen sich units gegenseitig einbinden.

Ich wende immer folgende Faustregel an:
Wenn die unit Klassen oder Funktionen enthält, also mehr eine Bibliothek ist, dann kommt sie in den Interface-Teil.
Wenn eine unit Funktionen für ein Formular enthält, kommt es in den Implementation-Teil, da diese sich bei mir gerne mal gegenseitig einbinden müssen.


Flare

Hansa 25. Sep 2007 02:13

Re: Units im Interface- oder im Implemention-Teil laden
 
Zitat:

Zitat von Flare
...Wenn eine unit Funktionen für ein Formular enthält, kommt es in den Implementation-Teil, da diese sich bei mir gerne mal gegenseitig einbinden müssen.

Was auf schlechtes Programmdesign schließen lässt. :mrgreen: Das macht man nur in Notfällen. :zwinker:

mkinzler 25. Sep 2007 06:39

Re: Units im Interface- oder im Implemention-Teil laden
 
Zitat:

Was auf schlechtes Programmdesign schließen lässt. Mr. Green
Beziht sich natürlich auf das gegenseitige Einbinden nicht auf den Implementation-Teil.
Im Interface gehört alles nicht-private bzw. die Units der Komponenten, welche du auf der Form hast oder du in Einstellungen des OI referenzierst.

oki 25. Sep 2007 06:48

Re: Units im Interface- oder im Implemention-Teil laden
 
Zitat:

Zitat von Hansa
Zitat:

Zitat von Flare
...Wenn eine unit Funktionen für ein Formular enthält, kommt es in den Implementation-Teil, da diese sich bei mir gerne mal gegenseitig einbinden müssen.

Was auf schlechtes Programmdesign schließen lässt. :mrgreen: Das macht man nur in Notfällen. :zwinker:

Leider muß ich bestätigen, dass auch mir das manchmal passiert. Ich binde dann die entsprechenden Units vorrangig dort im Implementationteil ein, wo Typen, Klassen oder sonstiger offentlicher Teil nur im Implementationteil der einbindenden Unit verwendet werden.

Erstes Ziel ist es bei mir aber auch überkreuzende Bezüge zu vermeiden. Ich mache dann eher aus zwei Units eine, wass eh nur bei Klassendeklarationen passiert, wo ich dieses in zwei Units geschrieben hatte, weil mir eine zu groß wurde. Ich muß aber zugeben, dass mit einer ordentlichen Strukturierung das Problem umgangen werden kann. Manchmal ist man aber einfach zu faul das im Nachgang zu beheben und "trickst" dann auch mal rum (was einem nach murphi so-und-so auf die Füße fällt, dass aber dann später :stupid: ).


Gruß oki

hanspeter 25. Sep 2007 07:38

Re: Units im Interface- oder im Implemention-Teil laden
 
Zitat:

Zitat von Hansa

Was auf schlechtes Programmdesign schließen lässt. :mrgreen: Das macht man nur in Notfällen. :zwinker:

Oder auf den Umstand hinweist, das D2007 nach wie vor ein Einpasscompiler ist und nicht mit Namensräumen umgehen kann.
Einpass war mit 64kbyte Speicher und Z80 CPU ein Fortschritt, heute nur noch ein Klotz am Bein.


Gruß
Peter

RavenIV 25. Sep 2007 08:45

Re: Units im Interface- oder im Implemention-Teil laden
 
Zitat:

Zitat von oki
Erstes Ziel ist es bei mir aber auch überkreuzende Bezüge zu vermeiden. Ich mache dann eher aus zwei Units eine, wass eh nur bei Klassendeklarationen passiert, wo ich dieses in zwei Units geschrieben hatte, weil mir eine zu groß wurde. Ich muß aber zugeben, dass mit einer ordentlichen Strukturierung das Problem umgangen werden kann. Manchmal ist man aber einfach zu faul das im Nachgang zu beheben und "trickst" dann auch mal rum (was einem nach murphi so-und-so auf die Füße fällt, dass aber dann später :stupid: ).

Ich mache dann aus zwei Units meistens drei.
Die dritte enthält dann die gemeinsam genutzen Teile.
In der Regel hab ich aber schon eine Definitions-Unit. Dann kommt das Zeugs dort rein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 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