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

必知必会的设计模式3

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

工厂方法模式(Factory Pattern)

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

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


工厂方法模式.jpeg

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

优缺点

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

  • 优秀的扩展性

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

适用场景

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

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

在 Android 中的使用

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

参考内容

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

相关文章

  • 必知必会的设计模式3

    工厂方法模式(Factory Pattern) 属创建型设计模式,「定义一个用于创建对象的接口,让子类决定实例化哪...

  • Java面试经典题目六(网络知识及设计模式)

    设计模式(必知必会) 【1】你知道那些设计模式? 答:单例模式、观察者模式、MVC模式、工厂模式、桥接模式、代理模...

  • 代理模式续集

    动态代理 讲代理模式不讲动态代理简直是耍流氓。相比 必知必会的设计模式8[https://www.jianshu....

  • 必知必会的设计模式7

    策略模式(Strategy Pattern) 属行为类设计模式,「定义一组算法,将每个算法封装起来,并且使它们之间...

  • 必知必会的设计模式8

    代理模式(Proxy Pattern) 属结构型设计模式,「为其他对象提供一种代理以控制对这个对象的访问」。 代理...

  • 必知必会的设计模式9

    外观模式(Facade Pattern) 属结构型设计模式,「要求一个子系统的外部与其内部的通信必须通过一个统一的...

  • 必知必会的设计模式10

    责任链模式 属行为型设计模式,「使多个对象(处理者)都有机会处理请求,从而避免请求发起者和处理者之间的耦合关系。将...

  • 必知必会的设计模式1

    装饰模式(Decorator Pattern) 属结构型设计模式,也称包装模式,「动态地给一个对象添加一些额外的职...

  • 必知必会的设计模式2

    桥接模式(Bridge Pattern) 属结构型设计模式,也称桥梁模式,「将抽象和实现解耦,使得两者可以独立地变...

  • 必知必会的设计模式5

    观察者模式(Observer Pattern) 属行为类设计模式,「定义对象间一种一对多的依赖关系,使得每当一个对...

网友评论

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

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