标签:
相对于 抽象工厂模式,创建者模式在处理 ”工厂“ 生产的 ”产品“ 关系之间更加灵活。
例子:(参照 抽象工厂模式 那一篇的例子代码)
新定义工厂类(“工厂” 不再处理 ”产品“ 的 联系了)
1 public abstract class Factory { 2 public abstract Translate getTranslate(); 3 public abstract Understand getUnderstand(); 4 5 }
创建者类:(处理这个联系)
1 public class Director { 2 private Factory factory; 3 4 public Factory getFactory() { 5 return factory; 6 7 } 8 9 public void setFactory(Factory factory) { 10 this.factory = factory; 11 } 12 13 public void doSomething(String txt) { 14 Translate translate = this.factory.getTranslate(); 15 Understand understand = this.factory.getUnderstand(); 16 translate.say(txt); 17 understand.doUnderstand(txt); 18 } 19 }
客户端调用类
1 public interface Client { 2 public static void main(String[] args) { 3 /* 创建者模式,相对于抽象工厂模式,多组有联系的 “生产过程” 拼接 更加 的灵活 */ 4 Director director = new Director(); 5 director.setFactory(new EnglishFactory()); 6 director.doSomething("test"); 7 director.setFactory(new ChineseFactory()); 8 director.doSomething("测试"); 9 } 10 }
标签:
原文地址:http://www.cnblogs.com/ChuangZhang/p/5338356.html