- 浏览: 320014 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
m133538:
现在好像行不通了,reflect包用户好像没有 导入的权限的
sun.reflect.Reflection后续 -
7先生:
刚好遇到这个问题,看到这篇文章解决了
合理运用remapResults属性 -
qkjava:
这个问题刚刚碰到
合理运用remapResults属性 -
G_o_o:
恩,我现在也遇到了楼主说的这个情况
少了思考 -
hanmiao:
今天就犯了这个错误,用1.5版本的JDK编译出來的jar运行在 ...
解决Unsupported major.minor version 49.0问题(转)
9 使用有意义的名字
当命名一个类,变量,方法,常量的时候,它们是什么,就用什么名字,这样对于将要阅读你程序的人来说,非常有意义。选择一个有意义的词汇,避免使用单字符或者一般的词汇来定义。
在下面的例子中,变量a和常量65是非常的含糊不清的
if (a < 65) {
y = 65 - a;
} else {
y = 0;
}
当使用一个有意义的名字后,变得非常容易理解
if (age < RETIREMNT_AGE) {
yearsToRetirement = RETIREMNT_AGE - age;
} else {
yearsToRetirement = 0;
}
但是当这个变量可以充分解释目的的时候,就可以忽略这个原则,比如像一个循环中的常量
for (int i =0; i < numberOfStudents; i++ ) {
enrollStudent(i);
}
一些变量用得非常多,已经成为标准,具体参照规则28
10 使用熟悉的名称
使用一个相对于目标领域熟悉的名称。如果你的客户对于clients的理解是customers,那么用Cstomer来定义这个类,而不是Clinet。使用对你目标领域来说有意义的,熟悉的名称,而不是你熟悉的名称。
11 质疑现存的长名字
一个对象的名称应该描述的是它的目的。如果一个类,接口,变量或者方法拥有一个过分长的名称的话,那么这个实体可能试图完成太多,也就是超出它的能力范围。
用一个简单的名字来给于一个实体较少的功能,能力,首先需要确定这个实体的设计和目的是什么。可能需要重构一个实体,也许会产生出新的类,接口,方法或者变量来使方法聚焦在自己所应该做的,和符合这个简单名字的意义。
12 用元音字母连接
缩写降低代码的可读性和增加更多的含糊不清。不要尝试去除元音字母去减少名称的长度。
下面的例子,读者可以很清晰的明白
public Message appendSignature(Message message,String signature){
...
}
而如果缩短了名字就会增加了理解的难度
public Msg appndSgntr(Msg msg,String sgntr) {
}
如果你去除元音字母,只是为了简短长名称的话,那么你需要问问自己,改变后是否和原来的意义相同或者接近呢。
13 只大写每个单词的首字母
这个规则是为了用大写来分割单词,减少迷惑。它对于一个单词接着一个单词来说非常有意义。
setDSTOffset() setDstOffset()
loadXMLDocument() loadXmlDocument()
该原则不适用于
常量只能拥有大写字母
static final String XML_DOCUMENT = “text/XML”;
每个方法,变量,参数的名字的首字母必须是大写。
Private Document xmlDocument;
14 不要使名字仅仅是语法不同
Java的编译器可以区分出语法的不同,可是人却很难注意到不同之处。
比如,一个变量命名为theSQLInputStream,那么就不要再同样的范围内出现这样的变量theSqlInputStream.如果这样的名称出现在同一范围内的话,那么会给后来阅读代码的带来很多不必要的迷惑和麻烦。
包命名
15 使用反转的,小写的你的域名作为包的节点名称。
任何的发布包都需要把域名小写,并且反转来命名。例如,如果一个公司名称为Bpu Soft。Internet域名为www.bpusoft.com。发布的应用程序的包为server,那么Bpu soft就要给包命名为com.bpusoft.server
16 使用单一的,小写的单词作为每个包的名称
一个好的,或者说合适的包的名称应该是由单一,小写的,并且清晰表达目的的,并且有用的单词构成。一个包的名字应该有意义的缩写。比如标准java包的名字java.io 和java.net.
17 只要当新的版本,与原来的版本兼容的时候,才可以使用相同的包名称,否则的话,新命名一个。
这个目的是为了保证两个相同名称的包的行为要是彼此兼容的。如果你有一个新的版本与原来的不兼容的话,你应该改变你的包的名称。不过有一个安全的简单的方法就是在每一个包的后面加上版本号
com.bpusoft.server.v1;
com.bpusoft.server.v2;
类型命名
18类或接口的每个单词的第一个字母大写
每个字母大写是为了分割每个单词,第一个字母大写是为了与变量的不同。
public class PrintStream
extends FilterOutputStream{
}
public interface ActionListener
extends EventListener {
}
类命名
19 用名词定义类
类定义的是对象或者事物。所以需要用名词定义:
class CustomerAccount{
...
}
public abstract class KeyAdapter
implements KeyListener {
...
}
20 使类的名字是一组有关联的属性,服务或者常量
类应该是由一组有协作的,相互关联的属性,服务或者常量定义的。
Java.awt.font.LineMetrics 类是一个管理者一组相关联的属性:
/**
* The LineMetrics
class allows
* access to the* metrics needed to layout
* characters along a line and to layout
* of a set of lines.
*/
abstract class LineMetrics {
public abstract int getNumChars();
public abstract float getAscent();
public abstract float getDescent();
public abstract float getLeading();
public abstract float getHeight();
}
java.beans.Bean 类定义了一组相关联的服务
/**
* This class provides some
* general purpose beans
* control methods.
*/
public class Beans {
public static Object instantiate(...){...};
public static Object getInstanceOf(...){...};
public static boolean isInstanceOf(...){...};
public static boolean isDesignTime(){...};
……………….
}
java.sql.Types是一个定义了一组常量的类
/**
*
The class that defines the constants
* that are used to identify generic
* SQL types.
*/
public class Types {
public final static int BIT = -7;
public final static int TINYINT = -6;
public final static int SMALLINT = 5;
public final static int INTEGER = 4;
public final static int BIGINT = -5;
public final static int FLOAT = 6;
public final static int REAL = 7;
public final static int DOUBLE = 8;
public final static int NUMERIC = 2;
}
发表评论
-
how to control whitespace around generic
2007-05-22 17:31 1685项目中使用checkstyle进行代码规范的管理,可是使用泛型 ... -
解决Unsupported major.minor version 49.0问题(转)
2007-05-21 15:17 15299原地址 、解决办法: 1. java -version 看显示 ... -
djUnit is one cool plugin
2007-05-17 10:15 2662简单使用了一下,感觉不错 djUnit is one cool ... -
SubEclipse改个用户名费了半天劲
2007-05-17 09:05 2220最近公司的Source管理工具改成了subvers ... -
很好的打jar包工具
2007-04-24 09:00 6390这两天被jar包搞的晕头转向的,试 ... -
自己关于母牛问题的算法
2007-03-14 23:40 2668看到了yiding_he 写的《母牛问题(非算法解答) 》感觉 ... -
CVS宏的关键字
2007-03-07 23:27 2375最近一直在使用CVS作为版本管理工具,自从知道了$id: EX ... -
本月的第一天和最后一天
2007-01-19 13:00 6805java 代码 /** ... -
equals
2006-04-28 14:17 1381前两天看《软件研发》,上面阎宏的一篇文章很好,说的是关于equ ... -
一般性原则
2006-04-29 10:59 12401 遵循原来的编码 ... -
很混沌
2006-04-30 10:51 805现在写代码,写完了之后,觉得特别的混沌,写完了也不知道好与不好 ... -
代码格式
2006-05-08 10:45 13465 缩进 一种改进代码可读性的原则是对一组的stateme ... -
命名原则(2)
2006-05-08 16:47 1418接口命名 21 使用名词或者形容词命名接口 一个接口是用来声明 ... -
小小重构
2006-06-27 22:27 1090今天看同事的代码看到了一些不妥的地方,稍稍修正了一下 前: f ... -
java优点之我见
2006-06-28 21:58 4296个人认为java为什 ... -
magic string
2006-06-29 22:08 1689重构里面说过不要写magic number(魔法数字),个人 ... -
关于去掉if判断的一些想法
2006-07-01 22:25 1207一个类中有两个私有变量 如X x1; X x2; 有一个方法 ... -
动态代理类
2006-07-14 21:20 1262因为过去业务总是这样,在调用一个类的开始时候要执行某些操作, ... -
去掉IF,这样可以吗
2006-07-14 21:21 1207前面我问了一个问题如下: >我有一个DataBean, ... -
Rod Johnson 's attitudes
2006-08-17 13:59 983今天刚刚开始看《Expert One-on-One J2EE ...
相关推荐
醛酮化合物2017命名原则.pdf
MR开关命名原则介绍MR开关命名原则介绍MR开关命名原则介绍MR开关命名原则介绍MR开关命名原则介绍MR开关命名原则介绍MR开关命名原则介绍
有机化合物命名的四大基本原则(1)文件.pdf
中国二极管和三极管的命名原则~中国半导体器件型号命名方法
ERP系统信息化资料:1.开发环境命名原则.ppt
根据医疗器械软件注册技术审查指导原则编写的软件版本命名规则 1. 概述 2. 版本定义及分类 3. 命名规则 4. 软件更新 4.1基本考量 4.2重大增强类软件更新 4.3轻微增强类软件更新 4.4纠正类软件更新
有机化合物命名原则_2014_5.1
TIPTOP命名原则和目录配置学习参考文献
生产设备命名及编号原则.pdf
命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。 举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为 frmSwitchboard。这样...
生产设备命名及编号原则.doc
有机化合物命名的四大基本原则(1).doc
命名原则是:选择正确名称时的困难可能表明需要进一步分析或定义项的目的。使名称足够长以便有一定的意义,并且足够短以避免冗长。唯一名称在编程上仅用于将各项区分开。文中介绍了.net官方编码方法和命名规则,以及...
该pdf由个人网络搜集,阐述了命名应遵循的原则,附有常见命名规范的简短说明。
关于dna的命名原则,这里有有关于DNA命名的一些基本方法,可以让各位大概了解一下。
1.1. 原则:为了加强在CAD绘图中协同工作,需要有一套科学的方法对所有的项目文件命名,采用西文字符缩写组合以便于同国际上优秀的设计公司交流。 1.2. 目前状态:已形成涵盖建筑、结构、暖通、给排水、弱电、强电...
大型门户站css样式命名和应用原则
大型门户站css样式命名和应用原则.pdf
GB/T 18391.5-2001信息技术 数据元的规范与标准化 第5部分 数据元的命名和标识原则
该文档包括java开发中的注释规范,命名规范,属性名和方法名。还有命名原则