首先,看下各个模式的定义

  • 抽象工厂模式:由工厂对象决定创建出哪种产品类的实例,为访问类提供一个创建一组相关或相互依赖对象接口,且访问类无须指定所要产品的具体类就能得到同族不同等级的产品
  • 建造者模式:将复杂对象的建造过程与它的表示分离,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象
  • 模板方法模式:定义一个操作中的算法骨架,将一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重新定义该算法的某些特定步骤

通过一张表格总结其区别

抽象工厂模式 建造者模式 模板方法模式
创建型模式 创建型模式 结构型模式
关注的是对象的创建 关注的是对象的创建 关注的是对象的方法结构
关注的是具体产品的创建 关注的是复杂对象的建造过程 关注的是算法框架
产品之间一般无关系 建造过程有关系,这些建造过程都是为创建一个复杂对象服务的,最终要到指挥者中进行组装,生成一个对象 各个算法之间有关系,模板类中定义好了算法骨架,具体算法在子类中实现