设计模式学习笔记——构造者模式(生成器模式)
public class Client {public static void main(String args[]){Builder builder=new BMW();//创建一个Builder对象Director director=new Director();//创建一个Director对象director.product(builder);//Director对象造车builder.getCar();//将制造的车返回}}
?
最终我们的构造者/生成器模式,带给我们了这样的结果
●生成器模式可以改变它所构建的产品的内部表示,另外还隐藏了产品如何装配的细节—irector)
●每个特定的生成器与其他生成器以及程序的其余部分无关。这增强了程序的模块性,并使增加额外模块变得相对简单(很明显,只要再实现一个新的ConcreeteBuilder即可)
●由于每个生成器都是根据数据逐步构建最终产品的,因此可以对生成器所构建的每个最终产品拥有更多的控制(在ConcreeteBuilder中)
?
总结下生成器模式与抽象工厂的区别,他们都返回由多个方法和对象组成的类
抽象工厂模式返回一系列相关的类
生成器模式根据所提供的数据将逐步构建一个复杂的对象
如果对比抽象工厂中举的手机例子,我的理解是,生成模式将为每个手机的建造提供一致的方法,比如建造外壳(Nokia),建造电池,建造芯片,安装系统。。。。。可以明显看出2个设计模式的区别