
Java
Shielderlion
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java javapractices (1) - Avoid basic style errors
Common Practices很多新手都会犯同样的风格错误,这样的风格错误不会使程序运行有问题,但是会使你的代码不好维护。从本质上来说,新手代码都不太具有可读性。下面是一些常见的基本风格错误:类名太长类方法名太长很少或没有文档(javadoc)名称上无法区分局部变量(local variables),参数(arguments), 成员变量(fields)许多空的catch块,翻译 2015-05-09 23:03:21 · 535 阅读 · 0 评论 -
Java javapractices (2) - Consider composition instead of subclassing
把组合当成继承的代替方案组合:采用转发调用到某个成员变量不会对该成员变量的具体实现有依赖由于可以运行时而不是编译时决定,相对更灵活继承:由于和父类或超类的实现紧密耦合,它破坏了封装性。给父类或超类添加方法会破坏子类父类或超类会同时添加进来不同的包可能有不同的人来维护,从不同的包来继承会引入风险例外的情况是基于模板的设计模式,这翻译 2015-05-10 15:46:09 · 324 阅读 · 0 评论 -
Java Tips and Best practices to avoid NullPointerException in Java Applications
1) call equals() and equalsIngoreCase method on known String literal rather unknow object.eg. "knowObject".equals(unknowObjet)就很好2)Prefer valueOf() Over toString() where both return same resul翻译 2015-05-20 20:30:20 · 436 阅读 · 0 评论 -
assert使用场景
Assert use cases常用的用assert场景:先决条件(private方法中) - 方法调用者必须满足这些需求后置条件 - 检查结果类不变式class invariant - 检查对象状态运行时不可达代码 - 某些分支预期不可达,但无法在编译器做检查(常见在else分支或switch的default分支)下面是例子import java.ut翻译 2015-06-02 14:30:52 · 4841 阅读 · 0 评论 -
Java参数检查
Validate method arguments方法的第一行往往都是检查参数的合法性,其理念就是越早失败越好,这对于构造函数尤其重要。对于private的方法, 跳过参数合法行检查策略是一个合理的策略, 因为private的方法只有被类自身调用,类作者应该能够保证调用private方法时参数的有效性。如果有必要,可在private方法中可以用assert这个关键字来检翻译 2015-06-01 20:16:28 · 1269 阅读 · 0 评论 -
不要在构造函数里往外传this参数
Don't pass 'this' out of a constructor在一个类例,this关键字指向一个native对象,当前类的实例。在一个构造函数里,this一般有以下几种使用方式.1. 在第一行,用this(...)调用其他构造函数2. 用this.filedName的形式访问设置属性3. 给其他对象的方法当参数,比如blah.operation(this);翻译 2015-06-01 20:39:32 · 820 阅读 · 0 评论 -
按协约设计Design by Contract
一个类或接口的Specification(规范)是它提供的所有非私有的项的集合,作为服务提供给调用方,以及在javadoc中提供的使用指南。创建一个Specification(规范)是一件很有挑战的事,需要做到以下几点:* 越简单越好* 越清晰越好* 不含糊,不具二义性* 准确* 让读者完全忘掉实现细节(除非为了找bug)* 让读者很容易掌握按协约设翻译 2015-10-16 19:54:08 · 676 阅读 · 0 评论 -
可子类化设计
1. 可子类化设计为了创建可子类化的类需要注意以下几点:1.1 所有的构造函数,readObject,以及clone不能调用可重载的方法(非private, 非static,非final)1.2 如果有一个方法依赖于一个可重载方法的实现,这个依赖需要在javadoc里显式声明1.3 如非必要,不实现Serializable接口1.4 如非必要,不实现Cloneable接口翻译 2015-11-05 20:52:15 · 424 阅读 · 0 评论