工厂模式与生成模式的不同

生成模式(Builder Pattern)与 工厂模式(Factory Pattern)极为相似。其最大的区别就是,工厂模式返回的是“类似”的对象,而生成模式则返回的是“不同”的对象。
还是先看看图示再说,

从上图来看,实际上生成模式和简单工厂(再抽象一些可以说是抽象工厂)模式很接近。而生成模式的不同在于通过产生的“不同"对象,这些对象拥有有很多不同的方法和对象。注意看红色画圈部分。
工厂模式的基类定义子类几乎所有外部特征。子类只是完成基类的定义的实现。
生成模式的子类也要完成基类的接口,但主要是取得基类的数据对象,但它拥有更多自己的方法和对象(包括外观),比如: 当用户选择了一个客户,就会调用customerReport的SelectCustomer方法去实现下一步的动作。
 
原文地址:https://www.cnblogs.com/king_astar/p/1007379.html