javaSE复习之——设计模式_简单工厂与工厂方法模式

简单工厂模式概述

它又叫静态工厂方法模式,它定义一个具体的工厂类覅则创建一些类的实列

  • 优点

    客户端不需要在负责对象的创建,从而明确了各个类的职责

  • 缺点

    这个静态工厂类负责所有对象的创建,如果有新的对象添加,或者某些对象创建方式不同,就需要不断修改工厂,不利于后期维护

工厂方法模式概述

工厂方法模式中,抽象工厂类类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现

  • 优点

    客户端不需要再负责对象的创建,从而明确了各个类的职责,如果由新的对象增加,只需要增加一个具体的类和工厂即可,不影响已有的代码,增强了系统的维护性

  • 缺点

    需要额外写代码,增加了工作量

代码示例

1
2
3
4
5
DogFactory df = new DogFactory();
//DogFactory是实现工厂接口的工厂类
Dog d = (Dog) df.createAnimal();
//调用工厂类重写的抽象方法中的createAnimal类来创建对象
d.eat();

示例继承体系

  • Factory工厂接口

    定义抽象方法createAnimal()

    • DogFactory

      重写方法createAnimal(),创建dog对象

    • CatFactory

      重写方法createAnimal(),创建cat对象

  • Animal
    • dog
    • cat