xx软件公司产品开发代码规范-6-7
6、类型区规范
1、不提供服务的数据类型定义格式为:
T---- = --------- // 类型含义
2、有状态并提供服务的数据类型定义格式为:
T---- = class(----) //类型含义
private
--------
protected
--------
public
--------
published
--------
end;
3、原则上,数据类型及其内部方法、属性、数据定义时应按字母顺序排列。属性的读写方法分别以Get和Set为前缀命名。
4、内部数据、属性、方法定义规则:
4.1 Private区
a、所有数据放在Private 区,以F打头。
b、所有事件属性对应的方法指针放在Private 区,以F打头。
c、不准备被继承的属性的Get与Set方法放在Private 区。
d、响应消息的方法放在Private 区。
4.2 Protected区
a、被子类调用的但不能被外界调用的方法与属性。
b、供子类重载的方法 virsual; virsual; abstract。
4.3 Public区
a、构建析构方法
b、供外界调用的方法
c、供外界调用的属性
4.4 Published区
a、出现在Object Inspector里供设计时用的属性
b、出现在Object Inspector里供设计时用的事件响应
5、特殊的数据应在定义一行的行末用//注释其含义。特殊的属性、方法应在定义前一行用{}注释其含义。事件指针的定义不需注释,但事件类型定义时必须在其前一行用{}注释其含义。
7、变量区规范
A、在变量区定义单元的全局变量。
B、每个需要注释的变量单独一行,在行末用//注释其含义。
C、同一类型且含义逻辑上不并列的变量分开定义,同一类型且含义逻辑上并列的变量在一起定义。
D、一般不鼓励使用全局变量。在确实需要使用全局变量的时候,必须把全局变量限制在需要的环境内,如:一个全局变量可能只在单元的Implementation部分是全局的,所以必须把其定义在该部分内。被多个单元使用的全局数据应该被移入一个公共模块中。
E、全局变量可以在定义时直接初始化为某一个值。注意:所有的全局变量将自动进行零初始化,所以,不要将全局变量初始化为空值,如0, nil, ', Unassigned。零初始化的全局变量在可执行文件中不占用空间,非零初始化的全局变量则在可执行文件中占空间。
F、变量的命名规则参见本文档后面的命名规则项。