美文网首页
再说设计模式-抽象工厂模式

再说设计模式-抽象工厂模式

作者: oneape15 | 来源:发表于2019-02-01 22:15 被阅读33次

    定义

    抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式,其定义如下:

    Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
    为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。

    抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种,业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。
    抽象工厂模式的通用类图如下:


    抽象工厂模式的通用类图

    注意

    1. 有N个产品族,在抽象工厂类中就应该有N个创建方法。
    2. 有M个产品等级就应该有M个实现工厂类,在每个实现工厂中,实现不同产品族的生产任务。

    抽象工厂模式的优点

    • 封装性,每个产品的实现类不是高层模块要关心的,它只要关心接口
    • 产品族内的约束为非公开状态。这样的生产过程对调用工厂类的高层模块来说是透明的,它不需要知道这个约束。

    抽象工厂模式的缺点

    其最大的缺点就是产品族扩展非常困难。

    抽象工厂模式的使用场景

    抽象工厂模式的使用场景定义非常简单:一个对象族(或是一组没有任何关系的对象)都有相同的约束,则可以使用抽象工厂模式。
    例如一个文本编辑器和一个图片处理器,都是软件实体,但是linux下的文本编辑器和Windows下的文本编辑器虽然功能和界面都相同,但是代码实现是不同的,图片处理器也有类似情况。

    相关文章

      网友评论

          本文标题:再说设计模式-抽象工厂模式

          本文链接:https://www.haomeiwen.com/subject/mshjsqtx.html