我认为把知识给别人讲会,讲明白,自己才彻底明白。 努力把文章写好,写明白每一篇文章,分享给更多人。 一个赞、一个评论、一个关注,真的好开心,努力没有白费,得到了这么多人的认可。
定义:
将一个复杂对象的创建与他的表示分离,使得同样的构建过程可以构建不同的表示。
package Builder;
/**
* @Auther: truedei
* @Date: 2020 /20-4-29 20:43
* @Description:
*/
public class ProductBook {
private String bookName;
private int bookId;
public ProductBook() {
}
public ProductBook(String bookName, int bookId) {
this.bookName = bookName;
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
@Override
public String toString() {
return "ProductBook{" +
"bookName='" + bookName + '\'' +
", bookId=" + bookId +
'}';
}
}
package Builder;
/**
*抽象方法
*/
public interface ProductBuilder {
void builderProductBookName(String bookName);
void builderProductBookId(int bookId);
ProductBook build();
}
package Builder;
/**
* @Auther: truedei
* @Date: 2020 /20-4-29 20:47
* @Description:建造者
*/
public class CreateProductBookBuilder implements ProductBuilder {
//属性
private String bookName;
private int bookId;
@Override
public void builderProductBookName(String bookName) {
this.bookName=bookName;
}
@Override
public void builderProductBookId(int bookId) {
this.bookId = bookId;
}
@Override
public ProductBook build() {
return new ProductBook(this.bookName,this.bookId);
}
}
package Builder;
/**
* @Auther: truedei
* @Date: 2020 /20-4-29 20:49
* @Description:
*/
public class Director {
private ProductBuilder builder;
public Director(ProductBuilder builder) {
this.builder = builder;
}
public ProductBook makeProductBook(String bookName, int bookId){
//控制建造的顺序
builder.builderProductBookId(bookId);
builder.builderProductBookName(bookName);
//定义一个对象,用于返回
ProductBook productBook = builder.build();
return productBook;
}
}
package Builder;
/**
* @Auther: truedei
* @Date: 2020 /20-4-29 20:54
* @Description:
*/
public class Test {
public static void main(String[] args) {
ProductBuilder createProductBookBuilder = new CreateProductBookBuilder();
Director director = new Director(createProductBookBuilder);
ProductBook productBook = director.makeProductBook("Linux", 202001);
System.out.println(productBook);
}
}
ProductBook{bookName=‘Linux’, bookId=202001}
Spring的RequestMappingInfo