一、概念:
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,该模式可以使对象实例的使用者不需要了解该实例是怎么创建的,只需要告诉工厂我要什么,那么工厂就会给你生产对应的对象实例,用于解决创建类的实例出现很多重复代码的场景。其中包含简单工厂模式(Simple Factory),工厂方法模式(Factory Method),抽象工厂模式(Abstract Factory)三种模式,下面以简单工厂模式(SimpleFactory)为例进行演示!
二、简单工厂模式(Simple Factory)
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。该模式对对象创建管理方式最为简单。该模式是由一个工厂对象决定创建出哪一种产品类的实例。该模式可以理解为是不同工厂模式的一个特殊实现。
其UML类图如下

(1)简单工厂模式组成:

工厂角色(Factory):简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。
工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
抽象产品角色(Product):简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
具体产品角色(ConcreteProduct):是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。
(2)优缺点:
优点:
在于工厂类中包含了必要的逻辑,根据客户需要的条件动态实例化相关的类,对客户端来说,去掉了与具体产品的依赖。
缺点:
工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,当增加新的东东时,会违反开放-封闭原则
(3)实现方式:
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
(4)代码实现:
抽象产品类(AbstractProduct):

具体产品类(Concrete Product):

工厂类(Factory):

测试类(Text):

运行结果:

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,该模式可以使对象实例的使用者不需要了解该实例是怎么创建的,只需要告诉工厂我要什么,那么工厂就会给你生产对应的对象实例,用于解决创建类的实例出现很多重复代码的场景。其中包含简单工厂模式(Simple Factory),工厂方法模式(Factory Method),抽象工厂模式(Abstract Factory)三种模式,下面以简单工厂模式(SimpleFactory)为例进行演示!
二、简单工厂模式(Simple Factory)
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。该模式对对象创建管理方式最为简单。该模式是由一个工厂对象决定创建出哪一种产品类的实例。该模式可以理解为是不同工厂模式的一个特殊实现。
其UML类图如下

(1)简单工厂模式组成:

工厂角色(Factory):简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。
工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
抽象产品角色(Product):简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
具体产品角色(ConcreteProduct):是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。
(2)优缺点:
优点:
在于工厂类中包含了必要的逻辑,根据客户需要的条件动态实例化相关的类,对客户端来说,去掉了与具体产品的依赖。
缺点:
工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,当增加新的东东时,会违反开放-封闭原则
(3)实现方式:
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
(4)代码实现:
抽象产品类(AbstractProduct):

具体产品类(Concrete Product):

工厂类(Factory):

测试类(Text):

运行结果:
