教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> Delphi >> Delphi编码规范 RSS订阅
Delphi编码规范
Delphi编码规范(3)
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
(3)       读写规则:Delphi中有const和var形参,分别表示了对形参的读写控制。在形参列表中最好能够明确表示。
 
3.3   变量
(1)       使用规则:在程序的开始阶段要对所有的变量赋予明确的数值。普通类型变量要选择合适的数值;类的实例如果此时不需要创建,那么就赋值为NIL。所以,在主程序、过程或函数中要明确程序的初始化部分和程序的功能部分。
(2)       全局变量:在程序设计中,应该尽可能的避免使用全局变量。因为在程序的很多地方有可能修改全局变量的值,如果缺乏良好的管理机制,这将会使程序变得十分脆弱。而实际上很难在一个成百上千行的程序中对全局变量进行有效的监控。如果要使用全局变量,那么就尽可能在单元文件(.pas)的实现部分声明该变量。这样该变量就只在此文件中有效,而不会被其它文件访问。将全局变量放在单元文件的接口部分是很危险的。
(3)       局部变量:局部变量用于例程内部,遵循其它变量的命名规则。而且应该在例程的入口处立即初始化变量。
 
3.4   类型
大小写规则:因为类型标志符是保留字,所以应该全部小写。对于引用的其他公司、组织或个人的数据类型则尽可能地保留原样。
 
3.5   自定义类型
(1)       命名:对于自定义数据类型要以大写字母T为前缀,这样可以分清自定义数据类型和变量。名称的其它部分的命名遵守命名的一般惯例。
(2)       枚举类型:枚举类型的名称应该能够代表该枚举类型的用途。枚举类型的标志符列表的前缀应该包含两个或三个小写字母,以彼此关联,这些字母依次是组成枚举类型名称的单词的首字母。例如:
TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);
 
4. 面向对象相关
4.1     类的命名与格式
首先,类的名称应当能够清晰表达类的用途;其次,类的名称之前要以大写字母T开头,以表示这是一个自定义数据类型。在Delphi中,所有的类的祖先类都是TObject,在定义类中要明确表示出类的祖先类。也就是说,即使该类的祖先类是TObject,也要表明(在Delphi中如果不写明类的祖先类,那么就默认其祖先类为TObject)。
例如:
type
  TCar = class(TObject)
  private
    …
  protected
    …
  public
    …
  end
类的实例的名称可以与类名相同,如果只有一个实例时就使用没有前缀T的类名;如果有多个实例,那么就另外在前面添加其他合适的单词。
在一个单元文件中只可以定义一个类,而且单元文件的名称要与去掉前缀T的类名相同。如果在一个单元文件中定义了多个类,那么一个类就可以直接访问另一个类的私有字段或受保护字段,而不管该字段是否定义为只读。单元文件使用类的名称的目的是我们可以通过文件名直接察觉到类的大概,这样便于使用。
 
4.2     字段
字段的命名与变量的命名遵从同样的规则,但是要加上大写字母F为前缀,以表示这是一个字段。另外,字段名称应该为名词,而且要注意单词复数的使用(数组字段应当是复数,表示集合含义的字段也应该使用复数名称)。
所有的字段必须为私有,这样就可以通过属性来决定该字段在类的作用域之外的访问属性。这样组的目的是保证类的封装性。
字段名称的排列要参照字段的含义。参考名片管理系统,对一张名片我们首先关心的是姓名,然后是性别,然后是年龄,然后是各种联系方式,如果更细致一点就要考虑生日、家庭成员等。于是我们可以简单的定义类:
type
  TBusinessCard = class(TObject)
  private
    FName: string;
    FSex: string;
    FAge: integer;
    FEmail: string;
    …
  public
    …
  end;
 
4.3     方法
方法的命名与过程和函数的命名遵从同样的规则。对于读写某个字段的方法要使用Get或Set前缀加去掉前缀F的字段名作为名称,前缀Get表示读,Set表示写。如果希望某个字段具有只读属性,那么仅仅为其定义Get为前缀的方法并在属性中将其关联。
如果不希望一个方法被派生类覆盖,就使用静态方法;如果希望一个方法被派生类覆盖就使用虚拟方法;如果类的方法要被多个派生类直接或间接的使用,就使用动态方法;如果一个类需要创建实例,那么就不要使用抽象方法。
要注意方法的访问属性。类的外部接口通过方法实现,应当尽可能的使必要的方法作为接口,其它的方法要定义为私有方法。比如定义方法ExportNameList,其中有使用了一个子方法ExportName,如果不需要外部使用方法ExportName,那么就将其定义为私有方法,将ExportNameList定义为公有方法。
方法的参数尽量以字母A为前缀。如果某个方法使用参数:AName,那么此方法很可能要用到字段FName或属性Name,这样在实现代码中就不会将它们混淆。
在方法的定义中要将同样用途或为了实现同一目标的方法分为一组,在一组的第一个方法的前面和最后一个方法后面各留上一个空行即可。
 
4.4     属性
属性作为私有字段的访问器,应该使用相应字段的名称,但要去掉前缀F。
 
4.5     方法的实现
在方法的实现代码中要注意字段的访问方法。可以直接使用字段来访问,也可以使用属性。如果要对字段进行写操作,那么就直接使用字段;如果仅仅进行读操作,那么就使用属性。其实,在任何条件下都使用字段也很值得考虑。
如果要在程序发表后要修改某个方法,那么尽量不要改变现有的接口而通过修改实现代码,或者提供新的接口方法来实现。
首先要实现类的constructor和destructor方法,然后按照方法的定义顺序依次实现。

来源:upschool.com.cn
作者:
关键字:
发表日期:2007-2-10 7:35:23

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:原来的控件delphi7里何处寻?   下一篇:计算PI值到一亿位的算法


共3页 9 7 [1] [2] [38 :>

2009-1-8 6:11:52
本文的相类似文章
在学习中进步 在进步中成长 教程中国相随您的成长之路
华腾联合科技股份有限公司版权所有
广告联系:Rosibo@163.com