【发布时间】:2014-03-18 17:01:39
【问题描述】:
对于仅包含接口定义的 Delphi 单元是否有广泛使用的命名约定?
我特别想问是否存在任何已成为 Delphi 社区普遍惯例的东西。我不询问您对什么是好的约定,甚至是您个人使用的内容的意见。您的回答需要通过说明您在哪里使用过来证明您所描述的是一种普遍的惯例。
为了更清楚地说明这个问题,我将描述我所在组织的本土惯例以及我对它不满意的原因:如果一个班级被称为TFoo,那么它的单元将被称为uFoo。由TFoo 实现的接口可能会被称为IFoo,但显然我不能将此单元保存为iFoo,因为该接口已经具有该名称。
换句话说,我正在尝试完成这个网格:
+--------+---------------+---------------+
! ! Class ! Interface !
+--------+---------------+---------------+
! ! ! !
! Name ! TFoo ! IFoo !
! ! ! !
+--------+---------------+---------------+
! ! ! !
! File ! uFoo.pas ! ????.pas !
! ! ! !
+--------+---------------+---------------+
2014 年 3 月 19 日更新,更清楚地表明我正在寻找基于事实(而非基于意见)的答案。
【问题讨论】:
-
我使用 uIFoo.pas 约定。例如用于 IModalForm 接口、uIModalForm 等
-
我觉得没那么简单。您的所有单元中都有单一的类和接口?真的吗?您的类从不实现多个接口?真的吗?你从来没有一个由多个类实现的接口?真的吗?
-
有多少 Delphi 开发者就有多少约定。我认为现代 Delphi 版本支持在单元名称上使用点符号的伪命名空间。像 System.Classes、System.SysUtils。等等。我个人根据这个方案命名我所有的单位 CompanyName.ProductName.Topic.Subtopic。
-
您必须等待四个人发表他们的意见/他们自己的惯例才能表明您对任何一个都不感兴趣?
-
我没有特别暗示任何人。只是认为这是一个有效的问题,被否决并搁置,这就是为什么我觉得有必要写点东西。这应该是人们可以交流经验的地方,而不是等待机会否决/关闭任何稍微违反规则的问题。至少我是这么看的。但显然我在这里是少数派。
标签: delphi interface naming-conventions