当前位置: 首页 > 后端技术 > Java

Java命名规范(很全面,可以收藏)

时间:2023-04-02 09:47:48 Java

来源:www.ramostear.com/blog/2020/03/20/2vxdaqjq.html最近发现很多初级程序员写代码很不规范,比如方法名和类names等等,遇到代码干净的leader,肯定会被骂(什么垃圾代码),下面分享一篇很好规范的文章。在这篇文章中,我将从大到小,从外到内总结Java编程中的命名规范。.本文将涉及日常工作中常见的命名实例,如包命名、类命名、接口命名、方法命名、变量命名、常规类命名、抽象类命名、异常类命名和扩展类命名等,我将在包、类(接口、抽象类、异常类)、方法、变量、常量的顺序按照项目目录结构。本文为Java命名规范介绍,推荐收藏转发。1、包的命名约定包的作用是对功能相似或相关的类或接口进行分组和管理,以方便类的定位和查找。同时也可以使用包来避免类名冲突和权限控制,让代码更加简洁。易于维护。通常,包名以小写英文字母命名,并以“.”分隔。每个划分的单元只能包含一个名词。一般包命名多以顶级域名为前缀,如com、net、org、edu、gov、cn、io等,后跟公司/组织/个人名和功能模块名。下面是一些包命名的例子:nacos.client.configpackagecom.ramostear.blog.web下面是一些OracleJava常用的包命名示例:类命名规范类(Class)名词通常用于命名,首字母大写。如果一个类名包含两个以上的名词,建议使用Camel-Case的方式来写类名,每个名词的首字母也要大写。一般来说,类名的写法要尽量简单,尽量保持描述的完整性。所以在写类名的时候不建议使用缩写(除了一些习惯的名字。比如Internationalization和Localization缩写为i18n,UniformResourceIdentifier缩写为URI,DataAccessObject缩写为DAO,JSONWebToken缩写为JWT,HyperTextMarkupLanguage缩写为HTML等)。以下是一些常见的类命名示例:}publicabstractclassHttpContext{}publicinterfaceImageObserver{}publicclassArrayIndexOutOfBoundsException{}publicclassenumThread.State{}2.1接口命名约定简单的比如接口也是类(不是很严谨),所以接口的名字的写法也要符合类名的写法规范,首字母要大写。与普通的类名不同,通常使用形容词或动词来描述接口的名称。接口的动作行为。下面是在OracleJava中使用形容词来命名一些标准库的接口的例子:publicinterfaceIterable{}publicinterfaceEventListener{}在SpringFramework标准库中,通常使用名词+动词/形容词的组合来命名接口。以下是SpringFramework中的一些接口命名示例:publicinterfaceAfterAdvice{}publicinterfaceTargetClassAware{}publicinterfaceApplicationContextAware{}publicinterfaceMessageSourceResolvable{}2.2抽象类命名约定抽象类(AbstractClass)是一个特殊的类,它的命名等同于普通类的命名约定。通常,为了区分抽象类与普通类和接口,提高抽象类的可读性,在命名抽象类时,会使用“Abstract”/“Base”作为类名的前缀。下面是一些编程中约定俗成的命名例子:publicabstractclassAbstractRepository{}publicabstractclassAbstractController{}publicabstractclassBaseDao{}publicabstractclassAbstractCommonService{}下面是SpringFramework经常看到的抽像类示例:publicabstractclassAbstractAspectJAdvice{}publicabstractclassAbstractSingletonProxyFactoryBean{}publicabstractclassAbstractBeanFactoryPointcutAdvisor{}publicabstractclassAbstractCachingConfiguration{}publicabstractclassAbstractContextLoaderInitializer{}2.3异常类的异常名称异常是Class(Class)一、但与普通类命名不同的是,异常类在命名时需要使用“Exception”作为后缀。下面是常见的异常类命名示例:JavaClasses,它们属于系统异常,这类异常类的命名以“Error”作为后缀来区分Exception(编码、环境、运行等异常)。下面是一个系统异常(非检查异常)的命名示例:Merrth3{}publicclassNoSuch3.方法命名规范命名方法(Method)时,其首字母应小写。如果方法签名由多个单词组成,则应从第二个单词开始以驼峰形式书写。通常,在命名方法时,通常使用动词/动词+名词的组合。以下是方法命名的一些常见示例。3.1表示如果一个方法用于获取一个值,通常使用“get”作为其前缀,例如:publicStringgetUserName(){}publicListgetUserIds(){}publicUsergetOne(){}3.2表示Query如果一个方法需要通过查询或过滤的方式获取某条数据,通常使用“find”/“query”作为前缀,例如:publicListfindOne(Integerid){}publicListfindAll(){}publicListqueryOrders(){}3.3表达条件如果一个方法需要一些条件参数,方法名中可以使用“by”/“with”等字符作为条件的连接符,例如:publicUserfindByUsername(Stringusername){}publicListgetUserIdsWithState(booleanstate){}publicListfindAllByUsernameOrderByIdDesc(Stringusername){}3.4表达式设置如果一个方法是设置、插入、修改、删除和其他操作,则应以相应的动词(set、insert、update、delete)作为其名词的前缀,例如:publicvoidsetName(Stringname){}publicUserinsert(Useruser){}publicvoidupdate(Useruser){}publicvoidclearAll(){}3.5其他规范如果使用方法获取某组数据的长度或数量,则该方法应以长度或大小命名;如果方法的返回值是布尔值,方法应该使用“is”或“has”作为前缀;如果该方法用于将一种类型的数据转换为另一种数据类型,则可以在其前面加上“to”。这是一个综合性的例子:){}publicUserDtoconvertTo(Useruser){}publicStringtoString(Objectobj){}4.变量命名规范变量命名包括参数名、成员变量和局部变量。变量名通常以小写字母开头。如果变量名由多个单词组成,则第二个单词的首字母需要大写。在变量命名过程中,不建议使用“_”作为前缀或单词之间的分隔符。以下是一些常见的变量命名示例:privateStringnickName;privateStringmobileNumber;privateLongid;privateStringusername;privateLongorderId;privateLongorderItemId;\5。写法,如果常量名由多个单词组成,则用“_”统一分隔单词。下面是一个常量命名的例子:publicstaticfinalStringLOGIN_USER_SESSION_KEY="current_login_user";publicstaticfinalintMAX_AGE_VALUE=120;publicstaticfinalintDEFAULT_PAGE_NO=1;publicstaticfinallongMAX_PAGE_SIZE=1000;publicstaticfinalbooleanHAS_LICENSE=false;publicstaticfinalbooleanIS_CHECKED=false;规范遵循普通类的命名约束,首字母大写,采用驼峰命名法;枚举类中定义的值的名称遵循常量的命名约定,枚举值的名称需要与类名有一定的关系,下面是枚举的一些例子:publicenumColor{RED,黄色,蓝色,绿色,白色;}publicenumPhysicalSize{TINY,SMALL,MEDIUM,LARGE,HUGE,GIGANTIC;}以下是来自OracleJava标准库的示例:publicenumElementType{TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE,ANNOTATION_TYPE,PACKAGE,TYPE_PARAMETER,TYPE_USE;}7.其他命名约定7。1Array在定义数组时,为了阅读方便,尽量保持如下书写规范:int[]array=newint[10];int[]idArray={1,2,3,4,5};String[]nameArray={"First","Yellow","Big"}publicListgetNameById(Integer[]ids){}publicListgetNameById(Integer...ids){}7.2如果是复数orset表示当一个变量用于描述多个数据时,尽量使用单词的复数形式来书写,例如:Collectionorders;int[]values;Listitems;另外,如果表达式是Map数据,则应该使用“map”作为后缀,例如:MapuserMap;Map>listMap;7.3泛型类在编写泛型类时,通常会作如下约定:E代表Element,通常在集合中使用;ID用来表示一个对象的唯一标识类型T表示Type(类型),通常指的是一个类;K代表Key(键),通常用在Map中;V代表Value(值),通常用在Map中,与K成对出现;N代表Number,通常用来表示数值类型;?表示不确定的Java类型;X用于表示异常;U、S代表任意类型下面是一个泛型类的编写示例:interfaceFunctor{Tval()throwsX;}publicclassContainer{privateKkey;私有V值;Container(Kkey,Vvalue){this.key=key;这。价值=价值;}}publicinterfaceBaseRepository{TfindById(IDid);无效更新(Tt);ListfindByIds(ID...ids);}publicstaticListmethodName(Classclz){ListdataList=getByClz(clz);returndataList;}7.4接口实现类为了阅读方便,一般情况下,建议接口实现类使用“Impl”作为后缀,不建议使用大写“I”作为接口前缀。下面是编写接口和接口实现类的例子。推荐写法:publicinterfaceOrderService{}publicclassOrderServiceImplimplementsOrderService{}不推荐写法:publicinterfaceIOrderService{}publicclassOrderServiceimplementsIOrderService{}7.5测试类及测试方法在项目中,测试类使用被测业务模块名称/被测接口/被测类+“测试”方法编写,测试类中的测试函数写成“测试”+用例operation_state组合,例如:publicclassUserServiceTest{publicvoidtestFindByUsernameAndPassword(){}publicvoidtestUsernameExist_notExist(){}publicvoidtestDeleteById_isOk(){}}8扩展:Java开发中各种O的简写最后用一张表和图快速理解BO、DTO、DAO、PO、POJO,整理了VO之间的含义、区别和联系。名称使用范围说明BO用于命名Service、Manager、Business等业务相关类的BusinessObject业务处理对象,其主要作用是将业务逻辑封装成一个对象。DTO处理的PO对象,其内部属性可能增加或减少DataTransferObject数据传输对象,主要用在需要传输大量数据的地方,比如远程调用。例如可以将一个或多个PO类的部分或全部属性添加到EncapsulateasDTO中进行传输DAO用于读写数据库命名类DataAccessObject,主要用于封装对数据库的访问.通过DAO可以将POJO持久化为PO,PO也可以用来封装VO和DTOPOBean、Entity等类命名为PersistentObject持久化对象,数据库表中数据的映射状态在Java对象中,可以简单理解asaPOobjectisarecordinthedatabasetablePOJOPOJOisDO/DTO/BO/VO统称为PlainOrdinaryJavaObjectSimpleJavaobject,是简单的普通Java对象,禁止将类命名为XxxxPOJOVO通常是视图控制层和模板引擎之间传递的数据对象ValueObject值对象,主要用在视图层,视图控制器将视图层需要的属性封装成一个对象,然后使用一个VO对象来传递视图控制器和视图之间的数据。AO应用层对象ApplicationObject,一种介于Web层和Service层之间的抽象复用对象模型,很少被使用。下面就用一张图来了解一下上述O转换之间的关系:近期热点文章推荐:1.1,000+Java面试题及答案(2021最新版)2.不要全屏if/Else,试试策略模式,真的很好吃!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!