在Pascal文件中组织程序的标准做法是什么?

时间:2012-10-31 15:14:18

标签: pascal fpc

我想知道Pascal中源文件树是如何组织的。 从FPC的Language Reference Guide开始,程序和单元似乎必须完全包含在单个文件中(除非使用${INCLUDE}指令)。

我可以想出几种组织程序的方法:

  • 将所有内容粘贴在一个巨大的文件中(真的不喜欢这样),
  • 写几个大单元文件,
  • 编写许多小单元文件(可能会变成依赖的意大利面),
  • 写几个大单位,但使用${INCLUDE}
  • 将它们拆分成文件

使用${INCLUDE}对我来说似乎有点像黑客攻击,因为正确的模块系统应该让它变得不必要。另一方面,我担心单文件模块会得到 足够笨重。

这通常如何在实际项目中完成?我错过了一些选择吗?

2 个答案:

答案 0 :(得分:2)

绝对不需要使用单个文件,除非您有特殊需要,否则无需使用{$INCLUDE}

我有几个Delphi项目,这些项目是100多个单独的代码单元,根据需要使用,并添加相应的uses子句(interfaceimplementation部分)。您也可以在FPC源中看到此模式:

unit One;

interface
  uses System;

type
  TSomeThing=class(TBaseThing)
  ...
  public
  ...
  private
  ...
  end;

implementation

uses
  Math;

....

将源分解为逻辑单元(例如,彼此相关的类的单元,相互关联或相互依赖的类型,功能单元等)。在FP中有很多这样做的例子(它们遵循与Delphi的VCL / RTL相同的模式)来看看这通常是如何完成的。

答案 1 :(得分:0)

如果您正确设计应用程序,那么每个UNIT应该是合理的大小并且具有明确定义的目的。依赖关系应该是分层次的,如果您的应用程序足够大,可以将任意数量的密切相关的UNIT分组到库中。