系列回顾
简介
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
举例说明iPhone 8和iPhone X的屏幕和外壳都是不一样的,通过抽象工厂模式就可以实现,在为iPhone生产配件的时候不用指定相关的型号,可以自动根据手机的型号生产相应的配件。
优点当一个系列中的多个对象被设计成一起工作时,它能保证调用时始终只使用同一个系列中的对象,而不需要去指定具体的型号。
缺点系列扩展非常困难,要增加一个系列的某一产品时,既要在抽象的 Factory 里加代码,又要在具体的实现里面加代码。比如后面发现iPhone X配AirPods,iPhone 8配EarPods,那么不仅要Factory接口中添加方法,还要在其实现类中去修改。
使用场景
-
软件的更换界面主题功能;
-
生成不同操作系统的软件;
实例
1.首先需要创建一个Screen、Shell接口和其实现类:
2.然后定义抽象工厂接口IphoneFactory
3.实现相应的工厂
4.可以生产了
本文源码已托管至GitHub,欢迎Star
抽象工厂模式源码:https://github.com/holtenko/DesignPatterns/tree/master/src/AbstractFactory
扫描下方二维码,关注公众号,查看获取更多文章