【设计模式】简单工厂模式

111 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情 >>

【设计模式】简单工厂模式

相信各位对于设计模式的大名已经听过很多次了,其中工厂模式也是在实际工作中经常要考虑,所以今天我们就一起来学习一下简单工厂模式吧。

话不多说,我们马上出发!

简单工厂模式的定义

简单工厂模式,又叫静态工厂方法,它是属于创建型的模式,另外,它只是工厂模式中的一种简单实现。

简单工厂模式,是转化为有事先定义好的工厂对象来决定究竟创建哪种产品的实例。

简单工厂模式的使用场景

在有多个产品的场景下,或者有多种方式的情况下,要考虑到底应该实例化谁,将来会不会还有新的产品或者新的方式要加入。如果未来可能会加入新产品或者新方式的话,这时候就应该考虑用定义一个工厂类,由它来创建实例,并决定到底创建哪个实例。

定义了工厂类的话,那么在以后有新的产品或者方式的时候,只需要创建对应的类即可,解耦合了。

简单工厂模式使用例子

下面我们先来看看简单工厂模式的一个具体实现的类图:

(用简单工厂模式实现一个计算器的功能,包括加减乘除,以后还可能会增加其他新的计算方式)

image.png

通过上图,我们可以非常清楚地看到,OperatorFactory这个类就是工厂类,由它来创建其他各种计算方法的实例对象。而以后如果我们还需要增加其他什么计算方法的时候,只需要增加相应的类,让他继承Operator即可,这样子就大大降低了代码间的耦合程度,使得代码更容易得以维护。

下面我们来看看工厂类的具体定义:

public class OperatorFactory {
    public Operation newInstance(String type) {
        if (type.equals("+")) {
            return new OperationAdd();
        } else if (type.equals("-")){
            return new OperationSub();
        }
        return null;
    }
}

简单工厂模式的测试类如下:

public class SimpleFactoryTest {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        OperatorFactory operatorFactory = new OperatorFactory();
        Operation operation = operatorFactory.newInstance("+");
        int calcurate = operation.calcurate(a, b);
        System.out.println(calcurate);
    }
}

总结:

看到这里相信各位朋友对简单工厂模式(又叫静态工厂方法)有了一定的理解和认识,不管怎样,现在我们在这里再次地总结一下:

简单工厂模式又叫静态工厂方法)是创建型的模式,它可以说是工厂模式家族中最为简单、最为容易实现的一种工厂方法了。

简单工厂模式的核心就是定义了工厂类,最后由工厂类来决定到底实例化哪个产品的对象,并创建对应的对象。