工厂模式详解(三:抽象工厂模式)

三:抽象工厂模式(Abstract Factory Pattern)

        围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂(很抽象,慢慢品味)

图解:(此处先画工厂后画产品,便于梳理层次)

        

 讲解:(仅个人见解,可能不太正确,可以留言讨论)

抽象工厂模式其实就是工厂方法模式Plus,这里延申一块内容

传统工厂方法模式,每有一个新的产品加入,就需要创建一个新的抽象工厂,例:CarFactory,EngineFactory。

抽象工厂模式就是在传统工厂方法模式的前提下,按照产品族合并工厂

举例:每个产品族都有相同数量的产品级(车、引擎)

此时抽象工厂CarFactory:getCar(),getEngine()。

反例:每个产品族具有不同数量的产品级(奥迪不生产引擎)

此时只能去新建一个只生产car的抽象工厂供AudiFactory实现。

总结:

当每个产品族(马自达、奔驰、奥迪)都有相同产品级时,只需要实现一个获取多个产品级的抽象工厂接口即可,无需创建新的抽象工厂。抽象工厂其实就是帮助减少系统的工厂数量的。

结尾:

看了很多篇工厂模式讲解,并没有看出工厂方法模式和抽象工厂模式有什么很大区别。个人认为抽象工厂就是工厂方法模式的特例化,在这种特例化的情况下,能避免大量的去创建工厂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值