當使用德爾福:如果我有一個充滿像常數單位...添加一個單元的接口使用條款,而不是實現使用條款
Unit AConsts;
Interface
Const
Const1 : WideString = 'Const1';
Const2 : WideString = 'Const2';
Const3 : WideString = 'Const3';
Const4 = 100;
Const5 = 100;
Implementation
end.
,我想從使用本機另一個單位,有
Unit AUnit;
Interface
Uses
AConsts;
Implementation
end.
和
Unit AUnit;
Interface
Implementation
Uses
AConsts;
end.
之間......有什麼區別? 換句話說,就編譯好的應用程序而言,兩者是否有區別?
[編輯1]
感謝您的回答。
我沒有把這個問題弄清楚,爲此我表示歉意。問題不在於範圍,避免循環引用等。它是關於編譯的應用程序的差異。也許另一個例子會有幫助。
如果UnitA,UnitB和UnitC都使用AConsts,那麼App1在這些UnitA,UnitB和UnitC都有的編譯應用程序中會有差異(假設AConsts單元和其他代碼中的常量之間沒有名稱衝突)在接口部分的使用條款和App2中,UnitA,UnitB和UnitC都在實現部分的使用條款中包含AConsts。
也許我有點老派,但我認爲在界面中你應該只使用你的聲明所需的單位,這些單位將在單元外部提供,因此在界面中。你應該把其餘的部分放在實施中。 AFAIK,在古代,這有助於編譯速度和結果EXE大小,最近的版本處理的更好。但是,它仍然是一個整潔的方式。 – 2015-07-06 08:56:43