命名是个难题。
比如:一个工程,你首先要给整体取名字,比如: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;
这两个函数,就是一个规则约定问题。你想用哪种,自己决定就行。
- 0.1 教程说明
- 0.2 delphi xe8 安装
- 0.2.2 XE 10.3.3 安装
- 0.3 delphi IDE 的非常必要的配置
- 0.4 调试中的异常处理
- 0.5 工程路径设置
- 0.6 开发工具界面切换成中文的问题
- 一、实用技巧
- 0.尝试为event取名叫伊文特
- 1.各种(变量)数据在内存中是什么样子的?
- 2
- 3
- 4.乱码问题
- 5
- 二、多线程
- 三、DLL相关
- 1.DLL中函数参数如何设计?
- 2.调用易语言DLL识别验证码
- 四、界面设计
- 1.关于解耦问题
- 2.登录功能设计
- 五、面向对象基础知识
- 1.窗口间传递值
- 3.避免又臭又长的裹脚布
- 2.扩展 TStringGrid , delphi 7 示例
- 六、初学者误区集锦
- 七 TList 集合
- 1.附加信息Pointer设计
- 2.用 TList 来建立组件间的联系
- 3.泛型 TList<T> 示例