创建型设计模式--抽象工厂模式

定义:
为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定他们的具体类。
我理解的:
一切基于抽象,假设生产汽车,我们拟定汽车三大组成部分:发动机、轮胎、制动系统。首先不管什么汽车,三大件在汽车中担任的职责是一样的,但是不同的汽车又在具体三大件上有不同。那么我们可以给予三大件的基础共性把其抽象出来,同时汽车生产也可以抽象出来。

抽象工厂模式:


image.png

汽车生产抽象工厂:


image.png

抽象轮胎类:


image.png

抽象发动机类:


image.png

抽象制动系统类:


image.png

具体(普通)轮胎类:


image.png

具体(SUV)轮胎类:


image.png

发动机和制动系统实现类不在赘述;

汽车工厂实现类:


image.png

image.png

demo:


image.png
image.png

总结:
抽象工厂方法模式的优点:
一个显著的优点是分离接口与实现,客户端使用抽象工厂来创建需要的对象,而客户端根本就不知道具体的实现是谁,客户端只是面向产品的接口编程而已,使其从具体的产品实现中解耦,同时基于接口与实现的分离,使抽象该工厂方法模式在切换产品类时更加灵活、容易。
抽象工厂方法模式的缺点:
上面我们也有所涉及,一是类文件的爆炸性增加,二是不太容易扩展新的产品类,因为每当我们增加一个产品类就需要修改抽象工厂,那么所有具体工厂类均会被修改。

你可能感兴趣的:(创建型设计模式--抽象工厂模式)