美文网首页
必知必会的设计模式3

必知必会的设计模式3

作者: jkwen | 来源:发表于2021-02-28 12:36 被阅读0次

    工厂方法模式(Factory Pattern)

    属创建型设计模式,「定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类」

    简单来说就是创建对象实例的过程不是用 new 的形式,而是定义一个创建方式(这个就是工厂类抽象层),具体创建类的过程由工厂子类实现,工厂类关心的是生产产品,产品也是一层抽象类,具体要生产什么产品,在生产的时候告诉工厂子类,工厂就生产出对应的产品。但虽说是不同产品,他们总的来说都有相同的功能定义,只是具体功能表现不同。


    工厂方法模式.jpeg

    抽象产品类定义的就是工厂要生产的东西,具体是什么产品由产品类的子类决定。工厂类也做了一层抽象是为了与具体工厂类解耦,如果实际情况不需要也是可以省略的,那省略了之后就叫「简单工厂模式」。如果实际生产情况比较复杂,需要多个工厂类生产不同产品,那就叫「多工厂模式」。

    优缺点

    • 良好的封装性,代码结构清晰

    • 优秀的扩展性

    • 屏蔽产品类,调用者不关心具体产品实现

    适用场景

    因为是 new 一个对象的替代方案,所以只要涉及创建对象的地方都可以用,但要考虑实际情况,免的画蛇添足。

    工厂方法模式还能用于替代单例模式。

    在 Android 中的使用

    在「Android 进阶解密」一书中关于 ClassLoader 内容提到了工厂方法模式,在创建 PathClassLoader 对象的时候是由 PathClassLoaderFactory 创建的,而源码采用的就是工厂方法模式的简化板-简单工厂模式。

    参考内容

    「设计模式之禅(第 2 版)」
    「Android 源码设计模式解析与实战」

    相关文章

      网友评论

          本文标题:必知必会的设计模式3

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