Arch4系统开发指南-开发规范篇 中科软科技股份有限公司
2. ins.subsystems.module.web包下的类全部都要以“Action”结尾。 3. Action类必须继承ins.components.web.Struts2Actionn类。 4. 类名为:模块名+后缀,如报案模块的Web层Java类名为 RegistAction
6.2.2 类编程规范
1. 在WEB层类不允许用“new”关键字创建业务层和持久层类对象。
2. 在WEB层类不允许出现与SQL语句相关的代码,不允许调用任何类拼写SQL语句。
6.2.3 方法编程规范
1. 调用业务层的Service必须通过接口注入。
2. 在查询和翻页查询的方法中,必须把从业务层Service返回的结果集存放到Page对象中。 3. WEB层的类之间不允许互相调用。
4. WEB层仅可以抛出DataVerifyException和PermissionException。
5. 方法名为:动词+名词,如新增报案方法名为 addRegist,更新报案为updateRegist。
6.3 业务层规范
6.3.1 命名规范
1. ins.subsystems.module.service包下不能有文件。
2. ins.subsystems.module.service.facade包下的接口名必须以Service结尾。 3. ins.subsystems.module.service.spring包下的类名必须以ServiceSpringImpl结尾。
4. 类名为:模块名+后缀,如报案模块的业务层Java类的facade名为 RegistService,其Spring的
实现类的名字为RegistSeviceSpringImpl
6.3.2 方法命名规范
Service方法命名规范如下: 方法前缀 add update find check delete 说明 增加 更新 查询、获取等(单条或多条记录) 检查 删除 示例 addUser、addRole updateUser、updateRole findUser、findRole、findUserById、findUserByUserCode deleteUser、deleteRole 注意:由于和getter方法混淆,这里不采用get作为业务方法的前缀,而改用find。
第 13 页 共 20 页
Arch4系统开发指南-开发规范篇 中科软科技股份有限公司
6.3.3 类编程规范
1. 所有的ServiceSpringImpl类必须实现对应的Service接口,类和接口的名称仅相差“SpringImpl”。 2. ServiceSpringImpl类必须配置在/src/resources/spring/serviceContext.xml文件中,
值必须是首字母小写的Service接口名。
3. ServiceSpringImpl类的类变量只能用于定义Service引用,且只可用private修饰,对于这些Service
引用,只需要在ServiceSpringImpl类中生成set方法。
4. ServiceSpringImpl类的Service引用的变量名必须与serviceContext.xml文件中定义的
的id属性值相同。
6.3.4 方法编程规范
1. 在ServiceSpringImpl类中不允许使用“new”关键字创建持久层对象和WEB层对象。 2. 在业务层仅可以抛出BusinessException。
6.4 实体类(PO)规范
1. PO类由HibernateTools(Sinosoft版本)生成,不允许做任何修改的,也不允许在这个包下新增
类。
2. PO类中的属性区分大小写,在编写hibernate.reveng.xml文件时指定将自动生成。 3. PO类统一生成到ins.subsystems.schema.model包下(不分模块)。 4. 类名为:对象名。通常按照表名命名,区分大小写。
如:表prplregist对应的PO类为PrpLregist
第 14 页 共 20 页
Arch4系统开发指南-开发规范篇 中科软科技股份有限公司
7 实现高效Java编程的基础规则
7.1 避免使用new关键字来创建String对象
把一个String常量copy到String 对象中通常是多余、浪费时间的。
public class test{ public void method(){ System.out.print (str); } private String str = new String (\这里新建对象是完全没有必要的 private String str2=”2” //正确的应该如此 } 7.2 避免使用不必要的嵌套
过多的嵌套会使你的代码复杂化,减弱可读性。
public class test { string add (){ int c=(a=a+b)+b; //过于复杂 return c } } 7.3 避免在同一行声明多个变量
避免在同一行声明多个变量,这样可以使程序更加清晰,提高可读性。 错误的方法:
private int index, index1[]; 正确的方法:
private int index; private int index1[]; 7.4 避免使用不推荐的API
避免使用不推荐的API。有一些方法加了\标记,表示不推荐使用(通常在JavaDoc中还提供了替代方法)。如List类中add方法加了\标记,参考JavaDoc发现其建议用add()来代替addItem()。
错误的方法:
第 15 页 共 20 页
Arch4系统开发指南-开发规范篇 中科软科技股份有限公司
List dataList = new ArrayList (); dataList.addItem (str);
正确的方法:
List dataList = new ArrayList (); dataList.add (str); 7.5 避免把方法本地变量和参数定义成和类变量相同的名字
把任何的变量都定义成唯一的,避免引起混淆。 错误的方法:
public void method (int j) { final int i = 5; // VIOLATION } private int j = 2; 正确的方法:
public void method (int j1) { final int i = 5; // VIOLATION } private int j = 2; 7.6 为所有序列化的类创建serialVersionUID
为所有序列化的类创建一个serialVersionUID,可以避免破坏序列的兼容性。如果不特别制订一个UID的话,系统会自动计算UID(根据类的内容)。如果类被改变了,即时它是兼容的,你也不能反序列化老的版本了。在类中加如一个UID,编码控制类的兼容性。 错误的方法:
public class DUID implements java.io.Serializable { public void method () {} } 正确的方法:
public class DUIDFixed implements java.io.Serializable { private static final long serialVersionUID = 1L; public void method () {} } 7.7 常量的定义加上final关键字
常量的定义应该加上final标记,保证常量值从自始至终都不会改变。 错误的方法:
private int SIZE = 5; 正确的方法:
第 16 页 共 20 页