在我们的组织中,我们希望强制使用源代码的分层结构。每个单元将处于特定的“级别”,并且单元将只能使用相同或更低级别的单元。
例:
假设我们有这些单位:L1_A.pas,L1_B.pas,L2_C.pas,L2_D.pas,L3_E.pas(LX_意思是“级别X”)。
L1_A并且L1_B可以使用对方。L2_C并L2_D可以使用所有L1_*单位。L3_E可以使用所有其他单位。
如果L1_*单元试图使用L2_*单元或L3_*单元,则我们需要中止编译并产生一些错误(“较低级别的单元尝试使用较高级别的单元”)。
我们在C(或其他语言,预处理器)的编码,我们将例如定义LEVEL_1,LEVEL_2,LEVEL_3常量和所有第一次(分别为第2)级单位检查eihter LEVEL_2或LEVEL_3(RESP。 LEVEL_3)定义的常量在这种情况下,我们将发出有关错误。
Delphi定义(由定义{$DEFINE})在定义它们的单元之外无效。命名常量和常量表达式可以使用外部,但是其中的一个,我们看到取决于为单位的量级uses(即,如果L1_A定义const Level=1并L2_C const Level=2和L1_B包含using L2_C, L1_A比Level在L1_B将是2)。
我只提出了命名约定[ LX_Unit.pas(或LX.Unit.pas),其中Xlevel是级别,Unit是“真实的”单元名称],并使用 …
delphi ×1