命名格调类名应用UpperCamelCase格调,但下列情景除外:
DO: Data Object. 与数据库表构造一一对应,通过DAO层向上传输数据源对象BO: Business Object,业务对象. 由Service层输入的封装业务逻辑的对象DTO: Data Transfer Object,数据传输对象. Service或Manager向外传输的对象VO: View Object,显示对象. 通常是Web向模板渲染引擎层传输的对象AO: Application Object,利用对象. 在Web层与Service层之间形象复用的对象模型PO: POJO缩写,Plain Ordinary Java Object. 专指只有setter/getter/toString的简略类,包含DO,DTO,BO,VO等, 禁止应用xxxPOJO来命名UID办法名,参数名,成员变量,局部变量都对立应用lowerCamelcase格调常量命名全副大写,单词间用下划线隔开, 力求语义表白残缺分明,不要嫌名字长抽象类命名应用Abstract或者Base结尾异样类命名应用Exception结尾测试类命名要以要测试的类的名称命名,以Test结尾类型与中括号紧挨来示意数组POJO类中布尔类型的变量都不要加is前缀,在局部框架中会引起序列化谬误包名对立应用小写,点分隔符之间有且仅有一个天然语义的英语单词.包名对立应用复数模式.然而类名如果有复数含意,能够应用复数模式杜绝不标准的缩写,防止望文不知义为了达到代码自解释的指标,任何自定义的编程元素在命名时,应用尽量残缺的单词组合来表白含意在常量与变量命名的同时,示意类型的名词放在词尾,以晋升辨识度如果模块,接口,类,办法应用了设计模式,在命名时须要体现出设计模式接口类中的办法和属性不要加任何润饰符号(不要加public), 放弃代码的简洁尽量不要在接口中定义变量,如果肯定要定义变量,肯定是与接口办法无关的,并且是整个利用的根底变量
接口办法签名: void commit()接口根底常量: String COMPANY="Oxford"接口和实现类:
对于Service和DAO类,基于SOA的理念,裸露进去的服务肯定是接口,外部的实现类用Impl的后缀与接口的区别如果是形容能力的接口名称,去对应的形容词为接口(-able的模式)枚举类带上Enum后缀,枚举成员名称需全副大写
枚举类是非凡的类,域成员均为常量,且构造方法被默认强制是公有的各层命名标准:
Service或者DAO层办法命名标准:
获取单个对象的办法用get做前缀获取多个对象的办法用list做前缀 ,复数模式结尾获取统计值的办法用count做前缀插入方法应用save或者insert做前缀删除的办法应用remove或者delete做前缀批改的办法应用update做前缀畛域模型命名标准:
数据对象: XxxDO,Xxx为数据表名数据传输对象: XxxDTO,Xxx为业务畛域相干的名称展现对象: XxxVO,xxx个别为网页名称POJO为DO,DTO,BO,VO的统称,禁止命名成XxxPOJO
常量定义不容许任何未经事后定义的常量呈现在代码中在long或者Long赋值时,数值后应用大写的L, 不能是小写的l. 因为小写容易和数字1混同,造成误会不要应用一个常量类保护所有常量,要按常量的性能进行归类,离开保护
大而全的常量类横七竖八,应用查找性能能力定位到批改的常量,不利于了解和保护常量的复用档次有五层:
跨利用共享常量: 搁置在二方库中,通常是client.jar中的constant目录下利用类共享常量 搁置在一方库中,通常是子模块中的constant目录下子工程内共享常量 在以后子工程的constant目录下包内共享常量 在以后包的constant目录下类内共享常量 间接在类外部private static final定义如果变量值仅在一个固定范畴内变动,应用enum类型定义
如果存在名称之外的延长属性应应用enum类型,比方节令,示意一年中第几个节令:
public enum SeasonEnum {SPRING(1),SUMMER(2),AUTUMN(3),WINTER(4);private int seq;SeasonEnum(int seq) { this.seq=seq;}} 代码格局大括号的应用约定:
如果大括号内为空,则简洁地写成 { } 即可,不须要换行如果是非空代码块:
左大括号前不换行左大括号后换行右大括号前换行右大括号后如果还有else则不换行示意终止的右大括号后必须换行小括号的应用约定:
左小括号和字符之间不要呈现空格右小括号和字符之间也不要呈现空格左大括号之前须要空格if,for,while,switch,do等保留字与括号之间都必须加空格任何二目,三目运算符左右两边都须要加一个空格
运算符包含:
...