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