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  阅读(218)  评论(0编辑  收藏  举报

导航