一、前、后缀解释:
Fc_表示图形界面; Clt_表示客户端, Ctrl_表示控制, If_表示类的功能界面;
前缀可以叠加。
_clt标明是特意给客户端用的代码,_srv表示给服务端用的代码。
二、命名规则
1、类的命名=T+类名; 类的单元命名=cls+类名;类的通用实例命名=类名
2、构架与命名(按功能分)
1)一级模式:
窗体类[-->数据库]
2)二级模式:
窗体类[-->功能类][-->数据库]
3)三级模式:
窗体类[-->界面控制类][-->功能控制类][-->功能类][-->数据库]
4)四级模式:
窗体类[-->界面控制类][-->地址内功能类][-->地址外功能类][-->数据库]
【分离:窗体类=窗体类[-->界面控制类]
分离:[-->地址内功能类]=业务类
3、构架与命名(按物理分)
窗体类[-->界面控制类][-->功能控制类][-->功能类][-->数据库]
【增加:[-->界面控制类][-->功能控制类][-->功能类]】
3)五~六级模式:
窗体类[-->界面控制类][-->功能控制类][-->客户端类][-->业务类]
[-->服务类][-->数据库]
【[功能类]拓展为:[-->客户端类][-->业务类],增加了[-->服务类]】
4)七级以上模式:
窗体类[-->界面控制类][-->功能控制类][-->客户端类][[-->业务类]
[-->客户端业务类][-->业务类]]
[-->服务提供程序[-->业务类]][-->服务器端业务类][-->服务类][-->数据库]
【增加:[-->服务提供程序],
拓展[-->业务类]为[-->客户端业务类][-->服务器端业务类];共享[-->业务类]到
[-->服务提供程序]】
4、说明:
关键字:结构吞并 结构不良性 业务复杂度 代码复杂度 环节 业务集中度
代码复用性越强(区别于‘模块复用性’、代码复杂度-->和if、while、for、递归
语句的数量有关语句;业务复杂度=必要的功能描述个数有关、开发自主度=功能复
杂度-代码复杂度)
工作难度=fx(代码难度、业务难度、结构难度、知识难度)
代码难度=实际的if、while、for、递归×X、函数调用个数、代码行数×Y
X>1, Y<1; 1为一般运算符号的代码行的难度
结构难度=fx(类的个数,模块的个数)
知识难度=(∑每个函数使用度×知识是否熟悉度)
知识是否熟悉度=该程序员代码中函数的引用频繁度
函数使用度和函数出现的个数有关。
1)结构吞并(对应功能分离):架构里面相邻的环节可以吞并任何一个其它环节。吞
并得越多,表明结构不良性越高。
2)环节的增加:环节越多,表明代码复用性越强。同时,业务复杂度降低。结构复杂
性提高。
3)环节共享:
共享会提高业务集中度、复用性。但100%属于结构吞并,提高代码复杂度。
4)陈述含义:
1.[]中的任何一个环节都可以去掉。实际应用中可以越级,功能可以重复,
但引用顺序必须遵守这个规则.
2.拓展和共享是降低程序耦合度的唯一方法。要注意使用这两种方法的命名冲突问
题。
3.拓展可以通过共享业务类来实现,也可以定制独立的客户端业务类和服务器端业务
类。客户端业务类需要加注‘_c’来标明是用来特意给客户端用的;服务端业务类
需要加注‘_s’来标明是用来特意给客户端用的;如果没有加注,表明这个类或许
是客户端和服务器端均可试用,使用程度需要开发人员自己掌握。
3、应用关系:窗体[-->界面控制类][-->业务控制类]
[-->业务类(=客户端业务类+服务器端业务类)]
服务类(Service)[-->服务器服务提供类]-->服务器端服务类->服务类。
界面控制类[-->客户类]:在客户类业务简单的情况下,客户类可隐入界面控制类中。
界面控制类比较简单的情况下可以并入窗体里面。
2)前缀规则:窗体fm, 界面控制类fcCtrl, 客户类clt
Fc_表示图形界面; Clt_表示客户端, Ctrl_表示控制, If_表示类的功能界面;
前缀可以叠加。
_clt标明是特意给客户端用的代码,_srv表示给服务端用的代码。
二、命名规则
1、类的命名=T+类名; 类的单元命名=cls+类名;类的通用实例命名=类名
2、构架与命名(按功能分)
1)一级模式:
窗体类[-->数据库]
2)二级模式:
窗体类[-->功能类][-->数据库]
3)三级模式:
窗体类[-->界面控制类][-->功能控制类][-->功能类][-->数据库]
4)四级模式:
窗体类[-->界面控制类][-->地址内功能类][-->地址外功能类][-->数据库]
【分离:窗体类=窗体类[-->界面控制类]
分离:[-->地址内功能类]=业务类
3、构架与命名(按物理分)
窗体类[-->界面控制类][-->功能控制类][-->功能类][-->数据库]
【增加:[-->界面控制类][-->功能控制类][-->功能类]】
3)五~六级模式:
窗体类[-->界面控制类][-->功能控制类][-->客户端类][-->业务类]
[-->服务类][-->数据库]
【[功能类]拓展为:[-->客户端类][-->业务类],增加了[-->服务类]】
4)七级以上模式:
窗体类[-->界面控制类][-->功能控制类][-->客户端类][[-->业务类]
[-->客户端业务类][-->业务类]]
[-->服务提供程序[-->业务类]][-->服务器端业务类][-->服务类][-->数据库]
【增加:[-->服务提供程序],
拓展[-->业务类]为[-->客户端业务类][-->服务器端业务类];共享[-->业务类]到
[-->服务提供程序]】
4、说明:
关键字:结构吞并 结构不良性 业务复杂度 代码复杂度 环节 业务集中度
代码复用性越强(区别于‘模块复用性’、代码复杂度-->和if、while、for、递归
语句的数量有关语句;业务复杂度=必要的功能描述个数有关、开发自主度=功能复
杂度-代码复杂度)
工作难度=fx(代码难度、业务难度、结构难度、知识难度)
代码难度=实际的if、while、for、递归×X、函数调用个数、代码行数×Y
X>1, Y<1; 1为一般运算符号的代码行的难度
结构难度=fx(类的个数,模块的个数)
知识难度=(∑每个函数使用度×知识是否熟悉度)
知识是否熟悉度=该程序员代码中函数的引用频繁度
函数使用度和函数出现的个数有关。
1)结构吞并(对应功能分离):架构里面相邻的环节可以吞并任何一个其它环节。吞
并得越多,表明结构不良性越高。
2)环节的增加:环节越多,表明代码复用性越强。同时,业务复杂度降低。结构复杂
性提高。
3)环节共享:
共享会提高业务集中度、复用性。但100%属于结构吞并,提高代码复杂度。
4)陈述含义:
1.[]中的任何一个环节都可以去掉。实际应用中可以越级,功能可以重复,
但引用顺序必须遵守这个规则.
2.拓展和共享是降低程序耦合度的唯一方法。要注意使用这两种方法的命名冲突问
题。
3.拓展可以通过共享业务类来实现,也可以定制独立的客户端业务类和服务器端业务
类。客户端业务类需要加注‘_c’来标明是用来特意给客户端用的;服务端业务类
需要加注‘_s’来标明是用来特意给客户端用的;如果没有加注,表明这个类或许
是客户端和服务器端均可试用,使用程度需要开发人员自己掌握。
3、应用关系:窗体[-->界面控制类][-->业务控制类]
[-->业务类(=客户端业务类+服务器端业务类)]
服务类(Service)[-->服务器服务提供类]-->服务器端服务类->服务类。
界面控制类[-->客户类]:在客户类业务简单的情况下,客户类可隐入界面控制类中。
界面控制类比较简单的情况下可以并入窗体里面。
2)前缀规则:窗体fm, 界面控制类fcCtrl, 客户类clt