<设计模式>中有很多变量命明时用了前缀 a 或 an 如 aFactory,anAlternationExpression ,a an 代表何意.

  • 主题发起人 golden_future
  • 开始时间
G

golden_future

Unregistered / Unconfirmed
GUEST, unregistred user!
<设计模式>中有很多变量命明时用了前缀 a 或 an 如 aFactory,anAlternationExpression ,a an 代表何意. (50分)<br /><设计模式>中有很多变量命明时用了前缀 a 或 an 如aClient , aFactory,anAlternationExpression 在delphi 源程序中也有这样的命名前缀,这些命名变量常出现在函数参数 所以开始我以为是Argument(参数)的缩写 但an前缀在此总解释不通,还请高手指点.a an 代表何意.
 
代表一个,也就是英文单词 a, an 是因为元音开始
 
前缀一般表示类型的, 而一个表示为什么类型 ?
a 前缀在很重量级书中都出现过.它代表一个什么类型。?
 
前缀只是各人编程习惯。
有的习惯类型做前缀(好像大部分都这样),
当然也有别的。
具体怎么设计只要整个团体之间一致,比较简洁明了就好。
 
加上a或an是为了强调这是一个实例的句柄。
 
不是表示类型,而是指类的一个实例。
aClient表示Client的一个实例。
 
看 barton 一段代码
procedure TUpdater.CreateNode(AID, APID: Integer;
const AText: string);
var
I: Integer;
ParentNode: TTreeNode;
begin
ParentNode := nil;
if APID > 0 then
for I := 0 to Pred(FTreeView.Items.Count)do
if TNodeData(FTreeView.Items.Data).ID = APID then
begin
ParentNode := FTreeView.Items;
Break;
end;
TNodeData.Create(FTreeView, ParentNode, AID, AText);
end;

to Walter:
在barton 代码中AID 并不是一个类的实例.而是一个内部数据类型Integer类型 的一个变量,
而在对参数命名和对局部变量命名时同是integer 类型 为何不用相同的命名风格.
 
AID代表一个ID
I则是大家通常默认的一个循环用Interger变量,对于I来说不存在什么命名规则的问题。你给出的例子不太能说明你的问题。
我上面说得类换成对象应该更好点,指一个对象的一个实例。
在某些地方用a而不是对象类型的缩写会更好,就比如你给的例子,用在函数的参数上。
当重载时:
functiondo
ubleNumber(aNumber:integer):integer;overload;
functiondo
ubleNumber(aNumber:Double):Double;overload;
这样会比用类型缩写要好。
当然最后还是一句话,用什么样的风格不重要,关键是风格要统一。
 
to 沙隆巴斯的主人
你在上面说:“加上a或an是为了强调这是一个实例的句柄。 ”
“句柄” 一词在windows 中是指:windows 在管理各种对象(如窗口对象,画笔对象,互斥体对象) 时用的一个内部索引值,如TButton 的实例句柄是有意义的 如果TPepole=Class(TObject) 则TPeople的实例句柄为何意?
to Walter
一般说来:把类的具体表示称为对象,对象是类的实例,所以说所有的对象都是实例是极为恰当的,尽管一些实例不是对象(例如,关联的实例不是真正的对象,它仅仅是一个实例)--引用 <uml用户指南>
而你所说: “我上面说得类换成对象应该更好点,指一个对象的一个实例。”这句话如何理解?

functiondo
ubleNumber(aNumber:integer):integer;overload;
functiondo
ubleNumber(aNumber:Double):Double;overload;
这样会比用类型缩写要好。
我不明白好在哪,提高了可维护性 还是 提高了可理解性?还请解释一下。
to barton
如果你看到了这贴,还请解释一下你程序中命名代表何意?
 
这里的a 代表argument:(?)
functiondo
ubleNumber(aNumber:integer):integer;overload;
functiondo
ubleNumber(aNumber:Double):Double;overload;
procedure TUpdater.CreateNode(AID, APID: Integer;
const AText: string);
 
to:hsb0307
"这里的a 代表argument:(?)"
argument 参数意思,
vc 中用前缀m_ 代表成员变量 delphi 中F前缀代表成员变量
一般用g_前缀表时全局变量, 在成员数函数中可以 根据这些变量前缀知道这些变量在哪里定义的。
 
我晕,看来我越解释越乱了。
1。
一句话,我认为一个简单数据类型也是一个类,同理一个变量也是一个实例。
2。
提高了可理解性与可维护性。这个问题上仁者见仁智者见智,我的看法是这样,也很难解释明白。同时,你的习惯用法是怎样呢?用类型缩写?基本类型好说,自定义的类呢?比方说TClient, TClientService, TServer, TServerService, ...这些类的实例你怎么命名?一个系统有上百个类并不算多,就算5个人来开发,命名同一个类的实例也很难全部保持采用的缩写一致。用a一切OK,我也不认为这样会带来什么坏处。
 
我目前的命名习惯还很不稳定,所以要向各位大师学习。多谢Walter的热情指点。
 

Similar threads

回复
0
查看
827
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
962
SUNSTONE的Delphi笔记
S
顶部