MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦。如果有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你” builder。(这一定比美军在伊拉克用的翻译机好卖)。
追MM必胜武器,我爱你Builder
i)抽象建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的构造;
ii)具体建造者(ConcretBuilder)角色:它在应用程序的调用下创建产品的实例。完成任务为;
a) 实现抽象建造者Builder接口,给出一步步完成创建产品实例的操作;
b) 在创建完成后,提供产品的实例。
iii) 导演者(Director角色):调用具体建造者角色以创建产品对象;
iv)产品(Product)角色:建造中的复杂对象。一般情况下,一个系统不止一个产品类。
ii)具体建造者(ConcretBuilder)角色:它在应用程序的调用下创建产品的实例。完成任务为;
a) 实现抽象建造者Builder接口,给出一步步完成创建产品实例的操作;
b) 在创建完成后,提供产品的实例。
iii) 导演者(Director角色):调用具体建造者角色以创建产品对象;
iv)产品(Product)角色:建造中的复杂对象。一般情况下,一个系统不止一个产品类。
产品角色
package builder;
public interface Translate {
}
public interface Translate {
}
具体产品
package builder;
public class LoveTranslage implements Translate {
}
public class LoveTranslage implements Translate {
}
建造者角色
package builder;
public interface Builder {
public void addEnglish();
public void addChinese();
public Translate retriveProduct();
}
public interface Builder {
public void addEnglish();
public void addChinese();
public Translate retriveProduct();
}
具体建造者模式
package builder;
public class LoveBuilder implements Builder {
private Translate translate = new LoveTranslage();
public void addChinese() {
System.out.println( "翻译机可以说我爱你了");
}
public void addEnglish() {
System.out.println( "翻译机可以说I LOVE YOU 了,你可以追外观MM了");
}
public Translate retriveProduct() {
return translate;
}
}
public class LoveBuilder implements Builder {
private Translate translate = new LoveTranslage();
public void addChinese() {
System.out.println( "翻译机可以说我爱你了");
}
public void addEnglish() {
System.out.println( "翻译机可以说I LOVE YOU 了,你可以追外观MM了");
}
public Translate retriveProduct() {
return translate;
}
}
导演者角色
package builder;
public class Director {
public void build(){
Builder build = new LoveBuilder(); // new 一个建造者
/*
* 下面的语句,可以随意更换,删除
*/
build.addChinese();
build.addEnglish();
Translate translate = build.retriveProduct();
}
public static void main(String [] args){
new Director().build();
}
}
public class Director {
public void build(){
Builder build = new LoveBuilder(); // new 一个建造者
/*
* 下面的语句,可以随意更换,删除
*/
build.addChinese();
build.addEnglish();
Translate translate = build.retriveProduct();
}
public static void main(String [] args){
new Director().build();
}
}
本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/229230,如需转载请自行联系原作者