建造者模式:
属于创建型模式,和之前的工厂模式很相似。两者相比的话,建造者模式创建的对象是复杂的对象,而工厂模式创建的都是简单的单一对象。
建造者模式就像一个 流水线,会把各种零件按照一定的顺序组装成一个完整的对象。
比如:一个简单的电脑,由主板,cpu和显示器组成,而且组装一个电脑我们必须按照先装主板,然后装上CPU,最后装上显示器 这个步骤。
这时我们就靠建造者模式来帮我们
控制这个步骤。看代码:
package com.pattern.build.builder;
public interface Computer {
public void mainboard();// 主板
public void cpu();// cpu
public void screen();// 屏幕
public void computor();// 完整电脑
}
package com.pattern.build.builder;
public interface Board {//主板
public void board();
}
package com.pattern.build.builder;
public interface Cpu {//cpu
public void cpu();
}
package com.pattern.build.builder;
public interface Screen {//屏幕
public void screen();
}
package com.pattern.build.builder;
public class LenovoComputer implements Computer{ // 联想电脑
private Screen screen;
private Board board;
private Cpu cpu;
@Override
public void screen() {
this.screen = new Screen(){
@Override
public void screen() {
System.out.println("lenovo screen");
}
};
}
@Override
public void mainboard() {
this.board = new Board(){
@Override
public void board() {
System.out.println("lenovo board");
}
};
}
@Override
public void cpu() {
this.cpu = new Cpu(){
@Override
public void cpu() {
System.out.println("lenovo cpu");
}
};
}
@Override
public void computor() {
screen.screen();
board.board();
cpu.cpu();
}
}
package com.pattern.build.builder;
public class Builder {//建造者
private Computer c;
public Builder(Computer c){
this.c = c;
}
public void build(){
c.mainboard();//先组装主板
c.cpu();//再按上CPU
c.screen();//最后组装屏幕
}
}
package com.pattern.build.builder;
public class Client {
public static void main(String[] args) {
Computer c = new LenovoComputer();
Builder b = new Builder(c);
b.build();
c.computor();
}
}
很简单,不用多说,很明了。