标签:
BUILDER?MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖) 建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。
I love you(英语)
あなたのことが好きです(日语)
????(韩语)
请不要问我怎么会说这么多种语言
好吧,我要用设计模式实现它:
首先声明一个抽象类:
package com.soyoungboy.builder; public abstract class Builder { abstract String getString(); }
package com.soyoungboy.builder; public class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; } public String construct(){ return builder.getString(); } }
package com.soyoungboy.builder; public class EnglishBuild extends Builder { @Override String getString() { return " I Love You"; } }
package com.soyoungboy.builder; public class JapaneseBuild extends Builder{ @Override String getString() { return "あなたのことが好きです"; } }
package com.soyoungboy.builder; public class KoreanBuild extends Builder { @Override String getString() { return "????"; } }
package com.soyoungboy.builder; public class Main { public static void main(String[] args) { Builder builder = new EnglishBuild(); Director d = new Director(builder); String love = d.construct(); System.out.println(love); Builder builder1 = new JapaneseBuild(); Director d1 = new Director(builder1); String love1 = d1.construct(); System.out.println(love1); Builder builder2 = new KoreanBuild(); Director d2 = new Director(builder2); String love2 = d2.construct(); System.out.println(love2); } }
运行结果为:
I Love You
あなたのことが好きです
????
标签:
原文地址:http://www.cnblogs.com/androidsuperman/p/4438818.html