我想知道Pascal中源文件树是如何组织的。
从FPC的Language Reference Guide开始,程序和单元似乎必须完全包含在单个文件中(除非使用${INCLUDE}
指令)。
我可以想出几种组织程序的方法:
${INCLUDE}
使用${INCLUDE}
对我来说似乎有点像黑客攻击,因为正确的模块系统应该让它变得不必要。另一方面,我担心单文件模块会得到
足够笨重。
这通常如何在实际项目中完成?我错过了一些选择吗?
答案 0 :(得分:2)
绝对不需要使用单个文件,除非您有特殊需要,否则无需使用{$INCLUDE}
。
我有几个Delphi项目,这些项目是100多个单独的代码单元,根据需要使用,并添加相应的uses
子句(interface
或implementation
部分)。您也可以在FPC源中看到此模式:
unit One;
interface
uses System;
type
TSomeThing=class(TBaseThing)
...
public
...
private
...
end;
implementation
uses
Math;
....
将源分解为逻辑单元(例如,彼此相关的类的单元,相互关联或相互依赖的类型,功能单元等)。在FP中有很多这样做的例子(它们遵循与Delphi的VCL / RTL相同的模式)来看看这通常是如何完成的。
答案 1 :(得分:0)
如果您正确设计应用程序,那么每个UNIT应该是合理的大小并且具有明确定义的目的。依赖关系应该是分层次的,如果您的应用程序足够大,可以将任意数量的密切相关的UNIT分组到库中。