携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情 >>
【设计模式】简单工厂模式
相信各位对于设计模式的大名已经听过很多次了,其中工厂模式也是在实际工作中经常要考虑,所以今天我们就一起来学习一下简单工厂模式吧。
话不多说,我们马上出发!
简单工厂模式的定义
简单工厂模式,又叫静态工厂方法,它是属于创建型的模式,另外,它只是工厂模式中的一种简单实现。
简单工厂模式,是转化为有事先定义好的工厂对象来决定究竟创建哪种产品的实例。
简单工厂模式的使用场景
在有多个产品的场景下,或者有多种方式的情况下,要考虑到底应该实例化谁,将来会不会还有新的产品或者新的方式要加入。如果未来可能会加入新产品或者新方式的话,这时候就应该考虑用定义一个工厂类,由它来创建实例,并决定到底创建哪个实例。
定义了工厂类的话,那么在以后有新的产品或者方式的时候,只需要创建对应的类即可,解耦合了。
简单工厂模式使用例子
下面我们先来看看简单工厂模式的一个具体实现的类图:
(用简单工厂模式实现一个计算器的功能,包括加减乘除,以后还可能会增加其他新的计算方式)
通过上图,我们可以非常清楚地看到,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);
}
}
总结:
看到这里相信各位朋友对简单工厂模式(又叫静态工厂方法)有了一定的理解和认识,不管怎样,现在我们在这里再次地总结一下:
简单工厂模式又叫静态工厂方法)是创建型的模式,它可以说是工厂模式家族中最为简单、最为容易实现的一种工厂方法了。
简单工厂模式的核心就是定义了工厂类,最后由工厂类来决定到底实例化哪个产品的对象,并创建对应的对象。