將一個複雜對象的構建過程與它的表示分離, 使得一樣的構建過程能夠建立不一樣的表示,屬於建立型模式。設計模式
特徵: 只需指定須要建造的類型就能夠得到對象, 建造過程及細節不須要了解。屬於建立型模式ide
使用場景: 建立對象須要不少步驟, 可是步驟的順序不必定固定。若是一個對象有很是複雜的內部結構(不少屬性), 能夠將複雜對象的建立和使用進行分離。ui
@Data public class Course { private String name; private String ppt; private String video; private String note; private String homework; }
public class CourseBuilder { private Course course = new Course(); public CourseBuilder addName(String name) { course.setName(name); return this; } public CourseBuilder addPPT(String ppt) { course.setPpt(ppt); return this; } public CourseBuilder addVideo(String video) { course.setVideo(video); return this; } public CourseBuilder addNote(String note) { course.setNote(note); return this; } public CourseBuilder addHomework(String homework) { course.setHomework(homework); return this; } public Course build() { return course; } }
public static void main(String[] args) { CourseBuilder builder = new CourseBuilder(); builder.addName("設計模式").addPPT("【PPT課件】") .addVideo("【回放視頻】").addNote("【課堂筆記】").addHomework("【課後做業】"); System.out.println(builder.build()); }
建造者模式 | 工廠模式 | |
建造者模式更加註重方法的調用順序 | 工廠模式注重於建立對象 | |
建立對象的力度不一樣 | 建造者模式建立複雜的對象,由各類複雜的部件組成 | 工廠模式建立出來的都同樣 |
關注點 | 不只要建立出這個對象,還要知道這個對象由那些部件組成 | 只須要把對象建立出來就能夠了 |
建造者模式根據建造過程當中的順序不同,最終的對象部件組成也不同 |