java 设计模式之工厂模式

sancaiodm Java 2021-11-30 688 0

工厂模式分三种:

[1] 简单工厂模式

[2] 工厂方法模式

[3] 抽象工厂模式


简单工厂模式又称静态工厂模式:定义一个创建对象类,由这个类来封装实例化对象的行为;

在简单工厂模式中,可以根据参数的不同而返回不同类的实例,

简单工厂模式专门定义了一个类(工厂类)来负责创建其它类的的实例,被创建的实例通常都是具有共同的父类


只有一个工厂类的方式叫简单工厂模式,简单工厂类的所有方法都是static,这就会造成对子类无法去继承它,无法去扩展它,

所以简单工厂类适合创建一些产品单一的,简单的产品,


简单工厂模式是类

简单工厂模式:应用场景:因我们会用到大量的创建某种,某类或是某对象时,就会使用简单工厂模式

image.png



工厂方法模式只是部分抽象,

抽象工厂模式是全部抽象


工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪个类,工厂方法使用一个类的实例延迟到子类去完成。即 让具体的工厂类去创建具体的产品(对象)

image.png

(1)抽象工厂(Factory):是工厂方法模式的核心,与应用程序无关。所有创建对象的工厂类必须实现这个接口。

(2)具体工厂(Concrete Factory):是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑,并且被应用程序调用以创建产品对象。

(3)抽象产品(Product):是工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口。

(4)具体产品(Concrete Product):这个角色实现了抽象产品角色所定义的接口。某具体产品有专门的具体工厂创建,它们之间往往一一对应。




抽象工厂模式与工厂方法模式最大的区别:抽象工厂中每个工厂可以创建多种类的产品;而工厂方法每个工厂只能创建一类




简单工厂

image.png



工厂方法模式UML

image.png

抽象工厂

image.png

评论