java8 (spring3.x)對建立型模式下建造者模式(其實和java8沒多大關係)
我們需要建立一個學生物件,屬性有name,number,class,sex,age,school等屬性,如果每一個屬性都可以為空,也就是說我們可以只用一個name,也可以用一個school,name,或者一個class,number,或者其他任意的賦值來建立一個學生物件,這時該怎麼構造?可以建立任意的建構函式
難道我們寫6個1個輸入的建構函式,15個2個輸入的建構函式.......嗎?這個時候就需要用到Builder模式了
public class Builder {
static class Student{
String name = null ;
int number = -1 ;
String sex = null ;
int age = -1 ;
String school = null ;
//構建器,利用構建器作為引數來構建Student物件
static class StudentBuilder{
String name = null ;
int number = -1 ;
String sex = null ;
int age = -1 ;
String school = null ;
public StudentBuilder setName(String name) {
this.name = name;
return this ;
}
public StudentBuilder setNumber(int number) {
this.number = number;
return this ;
}
public StudentBuilder setSex(String sex) {
this.sex = sex;
return this ;
}
public StudentBuilder setAge(int age) {
this.age = age;
return this ;
}
public StudentBuilder setSchool(String school) {
this.school = school;
return this ;
}
public Student build() {
return new Student(this);
}
}
public Student(StudentBuilder builder){
this.age = builder.age;
this.name = builder.name;
this.number = builder.number;
this.school = builder.school ;
this.sex = builder.sex ;
}
}
public static void main( String[] args ){
Student a = new Student.StudentBuilder().setAge(13).setName("LiHua").build();
Student b = new Student.StudentBuilder().setSchool("sc").setSex("Male").setName("ZhangSan").build();
}
}
Lambada表示式
資料結構上增加@Builder註解
public static void main( String[] args ){
Student a = new Student.builder().age(13).name("LiHua").build();
}
相關文章
- JAVA設計模式 4【建立型】理解建造者模式Java設計模式
- 設計模式實戰 - 建造者模式設計模式
- 用Python實現設計模式——建造者模式和原型模式Python設計模式原型
- 設計模式實戰系列之@Builder和建造者模式設計模式UI
- 建造者模式模式
- 設計模式----建造者模式設計模式
- 設計模式(建造者模式)設計模式
- 設計模式 | 建造者模式設計模式
- 設計模式 --建造者模式設計模式
- 設計模式-建造者模式設計模式
- 設計模式 —— 建造者模式設計模式
- 設計模式:建造者模式及在jdk中的體現,建造者模式和工廠模式區別設計模式JDK
- Java設計模式之模板方法模式和建造者模式Java設計模式
- 建造者模式(Builder)模式UI
- Java建造者模式Java模式
- 4、建造者模式模式
- java設計模式-建造者模式Java設計模式
- 設計模式-建造者模式(Builder)設計模式UI
- 設計模式之【建造者模式】設計模式
- 設計模式之建造者模式設計模式
- 重學 Java 設計模式:實戰建造者模式Java設計模式
- 設計模式--建造者模式(Builder Pattern)設計模式UI
- golang設計模式之建造者模式Golang設計模式
- Java 設計模式(二)《建造者模式》Java設計模式
- GoLang設計模式01 - 建造者模式Golang設計模式
- 極簡設計模式-建造者模式設計模式
- 設計模式之建造者模式(BuilderPattern)設計模式UI
- 建造者模式(Builder Pattern)模式UI
- 設計模式 #3 (原型模式、建造者模式)設計模式原型
- 【設計模式】第四篇:建造者模式也沒那麼難設計模式
- 設計模式學習-使用go實現建造者模式設計模式Go
- 一段對話講完建造者模式模式
- 設計模式(Swift) - 3.觀察者模式、建造者模式設計模式Swift
- 設計模式【4】-- 建造者模式詳解設計模式
- Java設計模式之(三)——建造者模式Java設計模式
- Java進階篇設計模式之三 ----- 建造者模式和原型模式Java設計模式原型
- Java基礎-建造者模式Java模式
- 重識設計模式-建造者模式(Builder Pattern)設計模式UI