effective java 读书笔记
1.静态工厂方法与构造器的优劣对比,使用构造器之前考虑静态工厂方法
public static newInstance (){
return new Class();
}
2.构建器 Builder模式
当一个类有着多参数并且一些是必要的一些是可选的时候可用。其他有重叠构造器(可读性差),javabean方法(不够安全,阻止了把类做成不可以变的可能)。
public class Person {
private final String name;
private final String age;
private final String height;
private final String weight;
public static class Builder {
//required parameters
private final String name;
private final String age;
//optional parameters
private String height;
private String weight;
public Builder (String name, String age){
this.name = name;
this.age = age;
}
public Builder height(String val){
height = val;
}
public Builder weight(String val){
weight = val;
}
public Person build(){
return new Person(this);
}
}
private Person(Builder builder){
name = builder.name;
………
}
}
测试用例;
Person person = new Person.Builder("hello","23").height(178).build();
Class.newInstance 会破坏了编译时的异常检查.
3.单元素的枚举类型是实现singleton模式的最佳方法
绝对防止多次实例化,即使是面对复杂的序列化或者反射攻击。
public enum SingletonDemo{
INSTANCE;
String name;
public static void main(String []args){
Singelton.INSTANCE.name = "single";
}
}
to be continued...
posted on 2011-04-07 16:08 SeQuence.Choi 阅读(226) 评论(0) 收藏 举报
浙公网安备 33010602011771号