1、Java Builder模式主要是用一個內部類去實例化一個對象,避免一個類出現過多構造函數,而且構造函數如果出現默認參數的話,很容易出錯。
public Person(String name)
Person(String name, int age)
Person(String name, int age, boolean sex)
2、Android OkHttp框架中Request、Response類都使用了Java Builder模式。
3、下面舉一個小例子:
/** * @author SunKing1927 2015年11月2日 * Java Builder模式 */ public class Person { private String name; private int age; private boolean sex; public String getName() { return name; } public int getAge() { return age; } public boolean isSex() { return sex; } public static class Builder { private String name; private int age; private boolean sex; public Builder name(String n) { name = n; return this; } public Builder age(int a) { age = a; return this; } public Builder sex(boolean s) { sex = s; return this; } public Person build() { return new Person(this); } } private Person(Builder builder) { name = builder.name; age = builder.age; sex = builder.sex; } }
public class MainRun { public static void main(String[] argv){ Person person = new Person.Builder().name("StephenHe").age(20).sex(true).build(); System.out.println(person.getName() + "\n" + person.getAge() + "\n" + person.isSex()); } }
4、參考博文:
http://www.cnblogs.com/moonz-wu/archive/2011/01/11/1932473.html