"每个文件一个类"规则是否存在一些特定于Delphi的问题?

Esc*_*ity 6 delphi delphi-7

旧标题:建议每个单元有多少个类?

我的问题是针对德尔福的.我认为在Java和C#世界中,每个类通常有一个文件是一种相当被接受的做法.我认为这也是遵循Delphi的一个很好的规则,因为在Delphi中,如果一个单元中有多个类,私有成员就不是私有的.

所以我很惊讶地听到两个不同的高级(可能比我更有经验)的程序员告诉我,我的代码太多了.其中一人告诉我不要害怕在一个单位放置5-6个班级.

是否存在一些我不知道的"每个模块一类"规则的问题,这可以保证并解释这些程序员的反应?

duf*_*ymo 2

我不知道你说的模块是什么意思。

Java要求每个文件有一个公共类,并且类名必须与文件名匹配。没有如果、并且或但是。您可以在该文件中包含其他包私有或私有方法,但只能有一个公共类。

如果“模块”对您来说意味着“包”,那么我想说,一个包中包含多个类是很常见的。没有标准;查看 JDK 本身即可了解这一点。java.utiljava.langjava.sql和中有很多类javax.swing

除了这两个之外,我不知道你或所谓的“高级程序员”指的是什么。我同意任何事情都可能过度,不应该盲目遵循教条规则。

但分解是计算机科学(不,是解决问题)的基础。忽视它比过度使用更常见。

  • @duffymo,可能这对你来说很常见,但在 Delphi 生态系统中很少见到。正如每个项目一个文件是一个极端(即使有时是可能的)一样,每个类一个文件也只是另一个极端。虽然 Java 似乎只是要求它,但 Delphi 给了你自己决定的自由。不仅如此,Delphi 甚至不允许文件中没有类。 (3认同)