Builder模式的定义是“将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示”。直白来说,就是使用多个简单的对象一步一步构建成一个复杂的对象。
例子: 使用构建者模式来生产Computer
主要步骤:
1. 将需要构建的目标类分成多个部件(电脑可以分为主机、显示器、键盘、音箱等部件)
2. 创建构建类
3. 依次创建部件
4. 将部件组装成目标对象
Computer
private String displayer; private String mainUnit; private String mouse; private String keyboard; public String getDisplayer() { return displayer; } public void setDisplayer(String displayer) { this.displayer = displayer; } 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; }
ComputerBuilder
public static class ComputerBuilder{ private ComputerBuilder target =new ComputerBuilder(); public Builder installDisplayer(String displayer){ target.setDisplayer(displayer); return this; } public Builder installMainUnit(String mainUnit){ target.setMainUnit(mainUnit); return this; } public Builder installMouse(String mouse){ target.setMouse(mouse); return this; } public Builder installKeybord(String keyboard){ target.setKeyboard(keyboard); return this; } public ComputerBuilder build(){ return target; } }
调用
public static void main(String[] args) { ComputerBuilder computerBuilder = new ComputerBuilder(); computerBuilder.installDisplayer("显示器"); computerBuilder.installMainUnit("主机"); computerBuilder.installKeybord("键盘"); computerBuilder.installMouse("鼠标"); Computer computer = computerBuilder.Builder(); System.out.println(computer); }
原文:https://www.cnblogs.com/brook0366/p/13762719.html