//抽象的建造者:方法
public abstract class Builder{
abstract Builder buildA(String msg); //汉堡
abstract Builder buildB(String msg); //可乐
abstract Builder buildC(String msg); //薯条
abstract Builder buildD(String msg); //甜点
//出餐:得到产品
abstract Product getProduct();
}
==========================================================================
//产品:套餐
public class Product{
private String buildA="汉堡";
private String buildB="可乐";
private String buildC="薯条";
private String buildD="甜点";
}
==========================================================================
public class Worker extends Builder{
private Product product;
Builder Worker(){
product=new Product();
}
@Override
Builder buildA(String msg){
product.setBuildA(msg);
return this;
}
@Override
Builder buildB(){
product.setBuildB(msg);
return this;
}
@Override
Builder buildC(){
product.setBuildC(msg);
return this;
}
@Override
Builder buildD(){
product.setBuildD(msg);
return this;
}
@Override
Product getProduct(){
return product;
}
}
==========================================================================
public class Test{
public static void main(String [] args){
//服务员
Worker worker=new worker();
//链式编程:在原来的基础上
Product product=worker.buildA("炸鸡").buildA("雪碧").getProduct();
}
}