Java 建造模式实例

来源:互联网 发布:诺德软件 编辑:程序博客网 时间:2024/04/25 17:41

一个完整的java 建造模式(  builder pattern ) 例子:

//<span style="color: rgb(51, 51, 51); font-family: Consolas, Monaco, 'Andale Mono', monospace; font-size: 16px; line-height: 22.8571px; background-color: rgb(230, 230, 252);">Student.java</span>
package com.mkyong.model;import java.util.List;public class Student {    private String name;    private int age;    private List<String> language;    public static class Builder {        private String name;        private int age;        private List<String> language;        public Builder name(String name) {            this.name = name;            return this;        }        public Builder age(int age) {            this.age = age;            return this;        }        public Builder language(List<String> language) {            this.language = language;            return this;        }        public Student build() {            return new Student(this);        }    }    private Student(Builder builder) {        name = builder.name;        age = builder.age;        language = builder.language;    }    @Override    public String toString() {        return "Student{" +                "name='" + name + '\'' +                ", age=" + age +                ", language=" + language +                '}';    }}
利用上面建造模式 创建 Student 对象的例子:

package com.mkyong.model;import java.util.Arrays;public class TestStudent {    public static void main(String[] args) {        Student s = new Student.Builder().name("mkyong").age(18).language(Arrays.asList("chinese","english")).build();//Student{name='mkyong', age=18, language=[chinese, english]}        System.out.println(s);        // Classic way to create an object/*Student s = new Student();        s.setName("mkyong");        s.setAge(18);        s.setLanguage(Arrays.asList("chinese","english"));*/    }}

References

  1. Wikipedia – Builder pattern
  2. Too Many Parameters in Java Methods, Part 3: Builder Pattern



0 0