设计模式之简单工程模式

98 阅读2分钟

一、简单工厂模式(Simple Factory Pattern)

定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。

二、简单工厂模式的结构示意图

image.png

三、简单工厂模式中的三个角色

(1)Factory(工厂角色):即工厂类,它是简单工厂模式的核心,负责实现创建所有产品实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。在工厂类中提供了静态的工厂方法factoryMethod(),它的返回类型为抽象产品类型Product。

(2)Product(抽象产品角色):它是工厂类所创建的所有对象的父类,封装了各种产品对象的公有方法。抽象产品的引入将提高系统的灵活性,使得在工厂类中只需定义一个通用的工厂方法,因为所有创建的具体产品对象都是其子类对象。

(3)ConcreteProduct(具体产品角色):它是简单工厂模式的创建目标,所有被创建的对象都充当这个角色的某个具体类的实例。每个具体产品角色都继承了抽象产品角色,需要实现在抽象产品中声明的抽象方法。

四、谈谈创建对象和使用对象

与一个对象相关的职责通常有3类:对象本身所具有的职责创建对象的职责使用对象的职责。对象本身的职责比较容易理解,就是对象自身所具有的一些数据和行为,可通过一些公开的方法来实现其职责。本节中将简单讨论一下对象的创建职责和使用职责

所有的工厂模式都强调一点:两个类A和B之间的关系应该仅仅是A创建B或是A使用B,而不能两种关系都有。将对象的创建和使用分离,也使得系统更加符合单一职责原则,有利于对功能的复用和系统的维护。

五、代码练习

见gitee