文章目录
java 实现构建者模式
构造者模式的优点
①使用建造者模式可以使客户端不必知道产品内部组成的细节。
②具体的建造者类之间是相互独立的,这有利于系统的扩展。
③具体的建造者相互独立,因此可以对建造的过程逐步细化,而不会对其他模块产生任何影响。
要构造的很复杂的对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package construct; public class Computer { // 显示器 private String display; // 主体 private String mainUnit; // 鼠标 private String mouse; // 键盘 private String keyboard; @Override public String toString() { return "Computer{" + "display='" + display + '\'' + ", mainUnit='" + mainUnit + '\'' + ", mouse='" + mouse + '\'' + ", keyboard='" + keyboard + '\'' + '}'; } public String getDisplay() { return display; } public void setDisplay(String display) { this.display = display; } public String getMainUnit() { return mainUnit; } public void setMainUnit(String mainUnit) { this.mainUnit = mainUnit; } public String getMouse() { return mouse; } public void setMouse(String mouse) { this.mouse = mouse; } public String getKeyboard() { return keyboard; } public void setKeyboard(String keyboard) { this.keyboard = keyboard; } } |
创建构建者
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package construct; import construct.Computer; import java.util.Comparator; public class ComouterBuilder { private Computer computer = new Computer(); public void setDisplay(String display){ computer.setDisplay(display); } public void setMainUnit(String mainUnit){ computer.setMainUnit(mainUnit); } public void setMouse(String mouse){ computer.setMouse(mouse); } public void setKeyboard(String keyboard){ computer.setKeyboard(keyboard); } public Computer Builder(){ return computer; } } |
创建测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package construct; import construct.ComouterBuilder; public class ConstructTest { public static void main(String[] args) { ComouterBuilder computerBuilder = new ComouterBuilder(); computerBuilder.setDisplay("显示器"); computerBuilder.setMainUnit("主机"); computerBuilder.setMouse("鼠标"); computerBuilder.setKeyboard("键盘"); Computer builder = computerBuilder.Builder(); System.out.println(builder); } } |

