zoukankan      html  css  js  c++  java
  • java编程规约二

    四、OOP规约(Object Oriented Programming,面向对象设计)

    1、静态变量和静态方法直接用类名访问,不要再new 对象去访问

    2、方法覆盖必须加@Override注解

    3、尽量不要用可变参数做参数列表,尽量不要用Object作为参数类型

    4、老方法接口不要轻易删除或修改,你永远不知道以前是给谁用的,现在还有没有在用

    5、equals用法新技能:java.util.Objects.equals(Object a,Object b)

    老方法:.equals()的调用者优先用常量或确定有值的对象(放前面)

    6、所有相同类型的包装类对象之间做值的比较,用equals方法,尤其是Integer类,原因已在这个帖子中说明

    https://www.cnblogs.com/yb38156/p/9392917.html

    7、基本数据类型和包装类型

    基本类型一般都有初始值,包装类型未赋值一般为null

      (1)所有的POJO类属性使用包装数据类型

      (2)方法调用时参数和返回值用包装数据类型

      (3)局部变量使用基本类型

      (4)null验证和判断由开发者负责和保证

    8、POJO类不要存在isXXX方法,统一为getXXX方法,不要给属性赋默认值

    9、setter和getter方法的参数名和类的字段名保持一致,this.成员名 = 参数名。getter和setter方法中不要再加逻辑

    10、类内方法放置顺序:

      (1)类中有多个构造方法或同名方法,应按顺序放在一起;

      (2)public-->protected-->private-->setter/gettter,因为最关心和要负责的是public的方法

    11、循环体拼接字符串用StringBuilder的append方法不要用String的+号拼接

    12、工具类的构造方法设置为private的,这样就不会有人去new对象调工具方法

    五、注释规范

      注释是给自己看的,也是给继任者看的。

    1、每个类最好都加上author和date 

    2、抽象方法都要加注释,包括参数,返回值,异常,以及方法功能

    3、类,属性,方法的注释用/** 内容 */,不要用 //内容;方法内部单行注释用 //,多行用/* */

    4、TODO // 待开发,注明标记人和标记时间

    六、控制语句

    1、switch块的每个case必须有一个break或return(特殊情况除外),最后必须以default结束,即使是空语句

    2、if/else/for/while语句必须使用大括号,即使只有一行语句代码

    3、将if-else语句改写为if-return的形式,会的人都懂吧

    4、if中的条件判断表达式尽量简洁,不要代入太复杂的表达式,尽量避免在判断语句中用取反运算(!),语义很别扭难理解

    5、以下情况需要进行参数校验:

      (1)对外提供的开放接口,比如API/HTTP接口

      (2)权限接口或入口方法

      (3)执行时间开销很大的方法(一旦参数错误,回退很复杂,之前执行的都白费了)

    6、以下情况可以不用参数校验

      (1)调用频率较高的方法,比如DAO层的方法,一般要在Service层和Controller层就要提前做校验抛出问题

      (2)声明为private的只会被自己的代码调用的方法,如果能确定入参已做过校验肯定不会出问题,此处可以不再做校验

      (3)在循环体中被调用的方法,最好提前做好参数校验,不要再在这个方法中校验

  • 相关阅读:
    Navicat使用技巧(附快捷键)
    Eclipse working set 快捷键
    行为模式--策略模式
    软件的可复用性和维护性
    外观模式
    建造者模式
    开闭原则
    迪米特法则
    工厂作业方法
    依赖倒置原则
  • 原文地址:https://www.cnblogs.com/yb38156/p/9853297.html
Copyright © 2011-2022 走看看