欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java实现工厂方法模式,以及对工厂方法模式的见解

程序员文章站 2022-03-09 16:32:31
...

工厂方法模式和简单工厂一样是一个很简单易懂的模式,简单工厂是传入不同的参数来获取想要的对象,工厂方法模式就是,一类或者一个产品有一个专门的工厂。

工厂方法模式的角色:

1. 抽象的产品接口

2. 抽象的工厂接口

3. 具体产品

4. 生产具体产品的工厂

下面上代码,以生产汽车为例,我们要分别生产奔驰汽车和大众汽车:

汽车接口:

public interface Car {

    void run();
}

汽车工厂接口:

public interface CarFactory {

    Car createCar();
}

奔驰汽车和大众汽车实现类:

public class Benz implements Car {

    public void run() {
        System.out.println("我是奔驰车,我以很快的速度在运行");
    }
}
public class VW implements Car {
    public void run() {
        System.out.println("我是大众车,我以比较快的速度运行");
    }
}

奔驰汽车工厂和大众汽车工厂实现类:

public class BenZFactory implements CarFactory {

    public Car createCar() {
        return new Benz();
    }
}
public class VWFactory implements CarFactory {

    public Car createCar() {
        return new VW();
    }
}

测试代码:


public class FactoryMethodTest {
    public static void main(String[] args) {
        CarFactory carFactory;

        carFactory = new BenZFactory();
        Car benz = carFactory.createCar();
        benz.run();

        carFactory = new VWFactory();
        Car vw = carFactory.createCar();
        vw.run();
    }
}

测试结果:

我是奔驰车,我以很快的速度在运行
我是大众车,我以比较快的速度运行

工厂方法模式优点:

1. 体现单一职责原则,一种工厂只生产一种商品

2. 提现开闭原则,增加产品就要增加工厂,对修改关闭,对扩展开放

3. 迪米特原则,里氏替换,依赖倒置,都有体现,但是接口隔离还是没有充足的体现

缺点:

1. 虽然工厂方法模式是符合开闭原则的,但是同时也是它的缺点,因为如果有上千上万个产品,会类爆炸。

相关标签: 工厂方法模式