Java方法命名之“由简入繁”原则
1、访问控制层(Controller 层)中的方法命名方向是简洁明了,向着自然化语言方向靠拢,比如“更新用户”,建议命名为“updateUser”,而非“updateUserById”,实际上我们更新用户一般都是根据主键 ID 来实现的,所以“updateUserById”更适宜放在 service 中;自然语言对于前端用户(包括对第三方提供服务)更加的友好,更加的自然贴切,自然亲和感更强、更舒适。
2、业务逻辑层(Service 层)的方法命名建议向我们程序员专业领域靠拢,向具体的实现细节倾斜,这样在出现了问题后方便我们快速跟着查找定位问题。比如“删除用户”操作,你一定想到了 Controller 中的建议命名为“deleteUser”,此处的 Service 建议命名为“deleteUserById”,这其实是贯彻了“由自然语言向专业领域渐进的原则(由抽象向具体递进原则)”。
3、数据访问层(DAO 层)中的方法命名就要更加的具体啦!对于“模糊查询用户列表”这样的操作,Controller 层建议命名为“queryUsers”,这利用了英语中单词尾部"+s"表示复数的语法;Service 层中建议命名为“queryUserList”,这一点和上一条将的一致,在 queryUserList 方法中由于要处理分页,对于 M有SQL5 这样的数据库而言,一般都需要我们写两条语句来完成此功能,一条是查询总记录数的,另一条是查询业务数据的,所以在数据库访问层(DAO 层)就会涉及到两个方法,建议的命名分别为“selectUserTotalCount”和“selectUserList”,相对于业务逻辑层(Service 层)就更加的具体、更加的明细,同时也遵循了 SQL 语法的规则,更利于代码定位。
4、从上面这三层的命名建议来看,我们其实都遵循了“由抽象向具体递进原则”。
5‘类中的变量能用基本数据类型的,建议采用基本数据类型,这样的好处是内存开销更小、访问更快;原因是 JVM 中基本数据类型位于“JVM 方法栈”中,对象数据存储于“堆”中,在类初始化后变量就不会再改变了,而对象是在动态变化中,栈相对于堆而言,执行效率更高。
Java方法命名之“由简入繁”原则的更多相关文章
- 由简入繁实现Jquery树状结构
在项目中,我们经常会需要一些树状结构的样式来显示层级结构等,比如下图的样式,之前在学.net的时候可以直接拖个服务端控件过来直接使用非常方便.但是利用Jquery的一些插件,也是可以实现这些效果的,比 ...
- Delphi 组件渐进开发浅谈(一)——由简入繁
最近业余时间在写游戏修改器玩,对于Delphi自带的组件总觉得差强人意,需要书写大量冗余代码,如果大量使用第三方组件,在以后的移植和与他人交互时也不是很方便,因此便产生了自己封装组件的想法. 实际上这 ...
- web项目由简入繁
1.MVC--[javaBean+接口+jdbc+servlet+jsp] 用javaBean做数据模型, 数据操作放到DAO层 前端页面展示由JSP完成 页面跳转由servlet完成,页面数据传递用 ...
- java开发命名规范
使用前注意事项: 1. 由于Java面向对象编程的特性, 在命名时应尽量选择名词 2. 驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,首 ...
- Java魔法堂:类加载器入了个门
一.前言 <Java魔法堂:类加载机制入了个门>中提及整个类加载流程中只有加载阶段作为码农的我们可以入手干预,其余均由JVM处理.本文将记录加载阶段的核心组件——类加载器的相关信息,以便日 ...
- Js调用Java方法并互相传参
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...
- 15条变量&方法命名的最佳实践【转】
原文地址:15 Best Practices of Variable & Method Naming 不同的代码段采用不同的命名长度.通常来说,循环计数器(loop counters)采用1位 ...
- JAVA包命名规范
学习Java的童鞋们都知道,Java的包.类.接口.方法.变量.常量:JavaEE的三层模型等都有一套约定俗成的命名规则. 我学习每种语言都会关注相应的命名规则,一则体现自己比较专业:二来方便后检查, ...
- java开发命名规范(转载)
java开发命名规范 使用前注意事项: 1. 由于Java面向对象编程的特性, 在命名时应尽量选择名词 2. 驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而 ...
随机推荐
- JBOSS在win7环境下启动run.bat无反应
今天从隔壁机器拷贝了一份Jboss,却发现启动无任何反应. 仔细对比了jdk jboss的各项参数发现都是相同,无奈之下,检查run.bat文件 发现时在此句出现前后 无反应: "%JAVA ...
- swift基础语法之——变量和常量
swift使用let关键字来定义常量,使用var来定义变量,变量在使用前必须初始化(赋初始值) swift是类型安全语音,即不同类型的变量不能一起运算,必须转成同一类型才可以 变量的类型在声明时不必给 ...
- luogu4151 最大XOR和路径
然后呢这道题其实很简单 我们先考虑一种简单的情况,从1直接走到n(不管怎么走的,反正就是走) 然后就能找到一个路径了 这个走的过程用各种zmj算法都能过 然后呢我们发现如果直接走基本不会得到最优解,考 ...
- CF912D Fishes 期望
题意翻译 Description 有一个长为nnn ,宽为mmm 的鱼缸,还有一个边长为rrr 的正方形渔网.你可以往鱼缸里放kkk 条鱼,问用渔网随机在浴缸里捞鱼的最大期望是多少.不懂什么是期望的自 ...
- 【转】JavaScript里Function函数实现可变参数
转载: http://www.oschina.net/question/54100_15938 使用javascript类库函数时,经常会遇到一个函数,可以使用不同个数的参数的情况 比如:exp(v ...
- P2925 [USACO08DEC]干草出售Hay For Sale
传送门 把每体积的干草价值看成一,就变成求最大价值 直接上背包就行了 注意优化常数 #include<iostream> #include<cstdio> #include&l ...
- java读取配置到Hash表里
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; im ...
- Electron、Node.js、JavaScript、JQuery、Vue.js、Angular.js,layui,bootstrap
转载:https://blog.csdn.net/meplusplus/article/details/79033786 layui :是基于jquery库的封装开发. bootstrap:同样基于 ...
- No bean named 'xxxxxxx' available--springboot 上线打war包
springboot项目发布上线后,报错:No bean named 'xxxxxxx' available 因为我开发时pom用的jar,但上线发布war.解决方法: 1.pom.xml <p ...
- Python 内置的GUI库tkinter方法在py2和py3中的更改
参考资料: https://docs.python.org/3.4/library/tkinter.html#tkinter-moduleshttps://docs.python.org/2.7/ ...