封装一个复杂对象的构造过程,允许按步骤构造
模式结构: 产品+抽象生成器+具体生产器+指挥者publicabstractclassComputerBuilder{protectedComputer computer;publicComputergetComputer(){return computer;}publicvoidbuildComputer(){Computer computer =newComputer();System.out.println("生成一台电脑")}publicabstractvoidbuildMaster();publicabstractvoidbuildScrenn();publicabstractvoidbuildKeyboard();publicabstractvoidbuildMouse();publicabstractvoidbuildAudio();}publicclassHPComputerBuilderextendsComputerBuilder{@OverridepublicvoidbuildMaster(){// TODO Auto-generated method stubcomputer.setMaster("i7,16g,512SSD,1060");System.out.println("(i7,16g,512SSD,1060)的惠普主机");}@OverridepublicvoidbuildScreen(){// TODO Auto-generated method stubcomputer.setScreen("1080p");System.out.println("(1080p)的惠普显示屏");}@OverridepublicvoidbuildKeyboard(){// TODO Auto-generated method stubcomputer.setKeyboard("cherry 青轴机械键盘");System.out.println("(cherry 青轴机械键盘)的键盘");}@OverridepublicvoidbuildMouse(){// TODO Auto-generated method stubcomputer.setMouse("MI 鼠标");System.out.println("(MI 鼠标)的鼠标");}@OverridepublicvoidbuildAudio(){// TODO Auto-generated method stubcomputer.setAudio("飞利浦 音响");System.out.println("(飞利浦 音响)的音响");}}publicclassDirector{privateComputerBuilder computerBuilder;publicvoidsetComputerBuilder(ComputerBuilder computerBuilder){this.computerBuilder = computerBuilder;}publicvoidconstructComputer(){computerBuilder.buildCompputer();computerBuilder.buildMaster();computerBuilder.buildScreen();computerBuilder.buildKeyboard();computerBuilder.buildMouse();computerBuilder.buildAudio();}}
4. 原型模式
通过复制现有实例来创建新的实例,无需知道相应类的信息(深拷贝)publicclassPrototyoeimplementsCloneable{publicObjectclone()throwException{Prototype proto =(Prototype)super.clean();return proto;}}