简单工厂模式是设计模式中创建型模式的一种
又被称为静态工厂方法模式,它定义了一个具体工厂类负责创建一些类的实例

优点与缺点

优点:
    客户端不需要负责对象的创建,从而明确了各个类的职责
缺点:
    静态工厂负责了对象的创建,如果有新的对象添加,或某些对象的创建方式不同
    就需要不断修改工厂类,这不利于后期的维护

案例

简单案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public enum Type {
Cat,Dog;
}
public class SimpleFactory {
private SimpleFactory(){}
public static Animal createAnimal(Type type){
switch (type){
case Cat:
return new Cat();
case Dog:
return new Dog();
default:
return null;
}
}
}
public abstract class Animal implements Cloneable {
public abstract void function();
}
public class Cat extends Animal {
@Override
public void function() {
System.out.println("喵喵~");
}
}
public class Dog extends Animal {
@Override
public void function() {
System.out.println("汪汪!");
}
}
public static void main(String[] args) throws CloneNotSupportedException {
Cat cat = SimpleFactory.createCat(Type.Cat);
Dog dog = SimpleFactory.createDog(Type.Dog);
cat.function();
dog.function();
}
其实从代码就可以看出,它的优缺点 
类的职责更明确,但是一旦添加一个新的创建
那么势必也要修改工厂类
运行结果如下 :