工厂模式:工厂方法模式与抽象工厂方法模式的区别

在学习设计模式的时候,感觉工厂方法模式与抽象工厂方法模式有许多的相同之处,在此记录一下。
1.定义:
工厂方法模式:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。
抽象工厂模式:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无需指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。
2.模式的结构:
抽象工厂模式和工厂方法模式一样,都是由抽象工厂、具体工厂、抽象产品、具体产品四个角色组成,但抽象工厂模式中的抽象工厂中的方法个数会有多个(可以创建多个不同等级的产品),抽象产品也会有多个。
工厂方法模式结构图:
工厂模式:工厂方法模式与抽象工厂方法模式的区别_第1张图片
抽象工厂模式结构图:

总结:
工厂设计模式:

1.一个抽象产品类,可以派生出多个具体产品类
2.一个抽象工厂类,可以派生出多个具体工厂类
3.每个具体工厂类,只能创建一个具体产品的实例

抽象设计模式:
1.多个抽象产品类,可以派生出多个具体产品类
2.一个抽象工厂类,可以派生出多个具体工厂类
3.每个具体工厂类,可以创建多个具体类的实例

你可能感兴趣的:(工厂方法模式,java,设计模式)