Builder模式定义:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.
Builder模式是为了将构建复杂对象的过程和它的部件解耦
第一种情况:
public interface ComputerBuilder{
public Computer getComputer();
}
public interface ProcessComputerA extend ComputerBuilder{
public CPU buildCPU():
public Memory buildMemory();
public HDD buildHDD();
}
public interface ProcessComputerB extend ComputerBuilder{
publilc CPU buildCPU();
public Memory buildMemory();
}
public class ProcessComputerAImpl implement ProcessComputerA{
public CPU buildCPU(){}
public Memory buildMemory(){}
public HDD buildHDD(){}
public Computer getComputer(){
buildCPU();
buildMemory();
buildHDD();
}
}
public class ProcessComputerBImpl implement ProcessComputerB{
publilc CPU buildCPU(){}
public Memory buildMemory(){}
public Computer getComputer(){
buildCPU();
buildMemory();
}
}
public interface CPU {...}
public interface HDD{...}
public interface Memory{....}
public interface Computer{...}
第二种情况:
分离Director和Builder角色
public interface ComputerBuilder{
public CPU buildCPU():
public Memory buildMemory();
public HDD buildHDD();
}
public class ConcreteAComputerBuilder implement ComputerBuilder{
public CPU buildCPU(){}
public Memory buildMemory(){}
public HDD buildHDD(){}
}
public class ConcreteBComputerBuilder implement ComputerBuilder{
public CPU buildCPU(){}
public Memory buildMemory(){}
public HDD buildHDD(){}
}
public class ComputerDirector {
private ComputerBuilder builder;
public Computer getComputer(){
builder.buildComputer();
builder.buildMemory();
builder.buildHDD();
}
}
public interface CPU {...}
public interface HDD{...}
public interface Memory{....}
public interface Computer{...}