单例模式 用来创建全局唯一的对象
工厂模式 用来创建类不同,但是相关的对象(继承同一个父类或者接口的一组子类),由给定的参数来决定具体创建那个对象;
建造者模式 是用来创建复杂对象,可以通过设置不同的可选参数,“定制化”地创建同一个类不同的对象;
原型模式 针对创建成本比较大的对象,利用对已有对象进行复制的方式进行创建,以达到节省创建时间的目的。

工厂模式 vs 构建者模式

一言蔽之: 工厂模式是根据不同的条件生成不同类的对象,构建者模式是根据不同参数生成同一个类的不同对象。

  • 工厂模式:用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象;
  • 建造者模式:用来创建一种类型的复杂对象,可以通过设置不同的可选参数,“定制化”地创建不同的对象。

一个形象的例子
顾客走进一家餐馆点餐,我们利用工厂模式,根据用户不同的选择,来制作不同的食物,比如披萨、汉堡、沙拉。对于披萨来说,用户又有各种配料可以定制,比如奶酪、西红柿、起司,我们通过建造者模式根据用户选择的不同配料来制作披萨。