阿里巴巴开发手册总结——OOP规约

1,避免通过一个类的对象引用访问此类的静态变量或静态方法,造成无谓的编译解析成本,直接用类名来访问即可

2,所有的覆盖方法,都必须加@Override

3,相同参数类型,相同业务含义,才可以用Java的可变参数,避免使用Object

4,对外部正在调用或者二方库依赖的接口,不允许修改方法签名,以避免对接口调用方产生影响。若接口过时,必须加@Deprecated注解,并清晰地说明采用的新接口或者新服务是什么。

5,不能使用过时的类或方法

6,Object的equals方法容易跑出空指针异常,应用常量或确定有值得对象来调用equals

7,所有整型包装类对象之间值得比较,全部使用equals方法

8,浮点数之间的等值判断,基本数据类型不能用 == 进行比较,包装数据类型不能用equal方法进行判断

9,定义数据对象DO类时,属性类型要与数据库字段类型匹配

10,禁止使用构造方法BigDecimal(Double)方式把double值转化为BigDecimal对象

11,关于基本数据类型与包装数据类型的使用数据类型使用标准如下:

  1. 所有的POJO类属性必须使用包装类数据类型
  2. PRC方法的返回值和参数必须使用包装数据类型
  3. 所有的局部变量使用基本数据类型

12,在定义DO/DTO/VO等POJO类时,不要设定任何属性默认值

13,当序列化类新增属性时,请不要修改serialVersionUID字段,以避免反序列化失败,如果完全不兼容升级,避免反序列化混乱,那么请修改servialVersionUID

14,构造方法里面禁止加入任何业务逻辑,如果有出事化逻辑,请放在init方法中

15,POJO类必须写toString方法。在使用IDE中的工具source>generate toString时,如果继承了另一个POJO类,注意在前面加一下super.toString。

16,禁止在POJO类中,同时存在对应属性xxx的isXxx()和getXxx()方法

17,当使用索引访问用String的split方法得到的数组时,需要最后一个分隔符后做有误内容的检查,否则有抛下标越界的风险

18,当一个类有多个构造方法,或者多个同名方法时,这些方法应该按顺序放置在一起,便于阅读

19,类内方法定义的顺序是:公有方法或保护方法>私有方法>getter / setter方法

20,在setter方法中,参数名称与类成员变量名称一致,this.成员名 = 参数名。在getter、 setter中,不要增加·业务逻辑

21,再循环体内,字符串的连接方式使用Stringbuilder的append方法进行拓展。

22,final可以声明类、成员变量、方法及本地变量,下列情况使用final关键字:
    1)不允许被继承的类,如: String类。
    2)不允许修改引用的域对象,如: POJO 类的域变量。
    3)不允许被重写的方法,如: POJO 类的setter方法。
    4)不允许运行过程中重新赋值的局部变量。
    5)避免上下文重复使用一个变量,使用final描述可以强制重新定义一个变量,方便更好地进行重构。

23,慎用Object的clone方法来拷贝对象

24,类成员与方法访问控制从严:
    1)如果不允许外部直接通过new来创建对象,那么构造方法必须限制为private。
    2)工具类不允许有public或default构造方法。   
    3)类非static成员变量并且与子类共享,必须限制为protected。
    4)类非static成员变量并且仅在本类使用,必须限制为private。
    5)类static成员变量如果仅在本类使用,必须限制为private.
    6)若是static成员变量,必须考虑是否为final.
    7)类成员方法只供类内部调用,必须限制为private.
    8)类成员方法只对继承类公开,限制为protected。

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值