ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
命名是个难题。 比如:一个工程,你首先要给整体取名字,比如:cow horse fuck 一种功能,你也要取个名字,有时通用的英文反而会引起误解。 比如 : TSomeMgt 这个mgt(管理) 不一定好。 你还不如用一个动物或植物的名称 去代替一种功能。 单纯的 TSystem 肯定有问题,应该用 TCowSystem TSomeItem 可以换成 TSomeBean, 通用词太多,会引起误解。 RR 大神曾说过 TDataInfo 就是个垃圾命名。 可以换成 TDataCat 或 TSomeBean 都比这个好。 存放 pas 的目录。 根据需要要用 Public , common , XXUtils pas 文件本身命名,也要用 xxutils ,xxCommon , 有时可以参考一下 vcl 组件那些 命名方法。 另外:事件的命名。 TSomeClass=class; TSomeStatus=(ssUnknow,ssOK,ssErr); TOnSomeStatus=procedure(Sender:TSomeClass;AStatus:TSomeStatus) of object; TSomeClass=class public OnSomeStatus:TOnSomeStatus;  BoOtherObj:TObject; // 我还创新了一个 Bo, Brorrow; BoIniFile:TiniFile; // 让调用者知道,这里要人工指定一个 BoIniFile // 一看见 Bo 前缀的就知道这个意思了。多么清晰  // 不然,你就要纠结,这个 IniFile 的生命周期。加大工作量。 end; 调用时: TForm1=class(TForm) private  FSomeClass:TSomeClass; procedure OnSomeStatusTing(Sender:TSomeClass:AStatus:TSomeStatus); // 注意这个结尾 Ting ,专供事件。这样好区分 end; construcotr TForm1.Create; begin inherited; FSomeClass:=TSomeClass.Create; FSomeClass.OnSomeStatus:=self.OnSomeStatusTing; //注意这个 Ting end; 容易搞混的东西,我们可以强行定义规则。 能自己定义一些合理的命名规则,才是面向对象的精华所在。 function GetSomeList(AKind:integer):TStringList; begin Result:=TStringList.Create; end; Procedure GetSomeList(AKind:integer;L:TStringList); begin if Akind=1 then L.add('xxx'); end; 这两个函数,就是一个规则约定问题。你想用哪种,自己决定就行。