工厂模式
作用:
实现了创建者和调用者的分离

核心本质:

  1. 实例化对象不使用new,用工厂方法代替
  2. 将选择实现类、创建对象统一管理和控制。从而将调用方跟实现类解耦

工厂模式的三种形式

  1. 简单工厂模式
    用来生产同一等级结构中的任意产品(对于增加新的产品,需要覆盖已有代码)
  2. 工厂方法模式
    用来生产同一等级结构中的固定产品(支持增加任意产品)
  3. 抽象工厂模式
    围绕一个超级工厂创建其他工厂,该超级工厂又称为其他工厂的工厂

不使用工厂模式的时候
工厂模式及代理模式
简单工厂的使用
方法一:
工厂模式及代理模式方法二:
工厂模式及代理模式
思路图:
工厂模式及代理模式

工厂方法的使用
工厂模式及代理模式
思路图:
工厂模式及代理模式

总结:

  1. 简单工厂模式(静态工厂模式)
    虽然某种程度上不符合设计原则,但实际使用最多
  2. 工厂方法模式
    不修改已有类的前提下,通过增加新的工厂类实现扩展
  3. 抽象工厂模式
    不可以增加产品,可以增加产品族

代理模式
工厂模式及代理模式
代理模式的分类:

  1. 静态代理
  2. 动态代理

静态代理
角色分析:

  1. 抽象角色:一般会使用接口或者抽象类解决
  2. 真实角色:被代理的角色
  3. 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作
  4. 客户:访问代理对象的人

初始模式模拟:
工厂模式及代理模式
代理模式模拟:
工厂模式及代理模式
代理模式模拟功效:
工厂模式及代理模式思路图:
工厂模式及代理模式
代理模式的好处:

  1. 可以使真实角色的操作更加纯粹,不用去关注一些公共的业务
  2. 公共内容交给代理角色,实现业务的分工
  3. 公共业务发生扩展的时候,方便集中管理

缺点:

  1. 一个真实角色就会产生一个代理角色,代码量会翻倍,开发效率会变低

动态代理

  1. 动态代理和静态代理角色一样
  2. 动态代理的代理类是动态生成的,不是我们直接写好的
  3. 动态代理分为两大类:基于接口的代理,基于类的动态代理
    1. 基于接口—JDK 动态代理
    2. 基于类-------cglib
    3. java字节码实现: javasist

相关文章:

  • 2022-02-13
  • 2021-08-03
  • 2021-07-18
  • 2021-12-30
  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2021-12-26
猜你喜欢
  • 2021-12-02
  • 2022-03-06
  • 2022-02-11
  • 2021-10-12
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案