简单工厂模式是设计模式中创建型模式的一种
又被称为静态工厂方法模式,它定义了一个具体工厂类负责创建一些类的实例
优点与缺点
优点:
客户端不需要负责对象的创建,从而明确了各个类的职责
缺点:
静态工厂负责了对象的创建,如果有新的对象添加,或某些对象的创建方式不同
就需要不断修改工厂类,这不利于后期的维护
案例
简单案例
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(); }
|
其实从代码就可以看出,它的优缺点
类的职责更明确,但是一旦添加一个新的创建
那么势必也要修改工厂类
运行结果如下 :
