简单工厂模式又叫静态工厂方法模式,就是创建一个工厂类,负责创建一些类的实例。
- 优点
- 客户端不需要再负责对象的创建,从而明确了各个类的职责
- 缺点
- 这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护
举例如下:(举一个创建狗和猫的工厂的例子)
创建抽象父类(动物)
abstract class Animal { public abstract void eat(); }
创建实现类(狗和猫)
class Dog extends Animal { public void eat(){ System.out.println("狗吃骨头"); } } class Cat extends Animal { public void eat(){ System.out.println("猫吃鱼"); } }
创建工厂类(生产狗和猫的对象)
class AnimalFactory{ private AnimalFactory(){ } public static Animal createAnimal(String type){ if("dog".equals(type)){ return new Dog(); }else if("cat".equals(type)){ return new Cat(); }else{ System.out.println("暂不支持此动物!"); return null; } } }
测试类
class Test { public static void main(String[] args) throws Exception{ Animal af = AnimalFactory.createAnimal("dog"); if(af != null){ af.eat(); } } }
- 输出:狗吃骨头