您的位置:首页 > 其它

设计模式探索——建造者模式

2017-02-09 14:49 267 查看
UML类图


例如电脑的装机:

public class Computer{
//电脑组件集合
private List<String> parts = new List<String>();

//添加组件
public void Add(String part){
parts.add(part);
}
}

public abstract class Bulider{
//装CPU
public abstract void builderPartCPU();
//装主板
public abstract void builderPartMainBoard();
//获取组装好的电脑
public abstract Computer getComputer();
}

//具体的创建者 i5 华硕主板
public BuilderI5 extends Builder{
Computer computer = new Computer();
public void builderPartCPU(){
computer.add("i5 cpu");
}

public void builderPartMainBoard(){
computer.add("华硕主板");
}

public Computer getComputer(){
return computer;
}
}

//具体的创建者  i7  戴尔主板
public class BuilderI7 extends Builder{
Computer computer = new Computer();
public void builderPartCPU(){
computer.add("i7 cpu");
}
public void builderPartMainBoard(){
computer.add("戴尔主板");
}

public Computer getComputer(){
return computer;
}
}

public class Director{
//组装电脑
public void construct(Builder builder){
builder.builderPartCPU();
builder.builderPartMainBoard();
}
}

public class Customer{
public static void main(String[] args){
Director director = new Director();
Builder bI5 = new BuilderI5();
Builder bI7 = new BuilderI7();

director.construct(bI5);//组装I5机子
director.construct(bI7);//组装I7机子

Computer i5 = bI5.getComputer();
Computer i7 = bI7.getComputer();
//这里可以获得组装好的机子  进行其他的操作
//比如在Computer中  i5.playGame();等等
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式