设计模式汇总(自编)

imgpng 单例模式

  • 如何出现项目在很多地方需要创建很多相同的实例,那么就可以考虑用单例和静态方法
  • 为什么不用静态方法而用单例模式?
    • 两者其实都能实现我们加载的最终目的,但是他们一个是基于对象,一个是面向对象的
    • 属性是通过面向对象(封装,继承,多态,抽象)的编码方式得到的,我们就应该使用单例模式。
  • 为什么不用静态对象而用单例模式?
    • 单例就是静态对象的拓展:
      • 1.解决了静态对象可以被任意修改的不安全问题
      • 2.解决了线程安全问题
      • 3.拓展了面向对象能力,可继承接口或通过子类扩展。可实现接口,支持多态替换。

工厂模式

流程引擎

  • rms的oa流程

建造者模式

  • 当我们需要来之同一个类,但是要就有不同结构对象时,就可以通过构造另一个建造者来进行实列化。分步骤构建复杂对象,允许通过不同配置生成不同表示的对象。

原型模式

  • 原型模式其实就是一种克隆对象的方法

责任链模式

  • 将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。
  • JdkDynamicAopProxy 动态代理自编 https://www.cnblogs.com/itqinls/p/18173277

观察者模式

  • 当一个对象的状态发生改变时,已经登记的其他对象能够观察到这一改变从而作出自己相对应的改变。通过这种方式来达到减少依赖关系,解耦合的作用。

策略模式

  • 定义一系列算法,封装每个算法,并使他们可以互换,不同的策略可以让算法独立于使用它们的客户而变化。

策略模式2.0

模板方法

  • 定义:模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤
  • 目的:
    • 1.使用模版方法模式的目的是避免编写重复代码,以便开发人员可以专注于核心业务逻辑的实现
    • 2.解决接口与接口实现类之间继承矛盾问题

迭代器模式

  • 定义:我们可以用相同的方式处理集合,无论它是列表还是数组,它都提供了一种迭代其元素而不用暴露其内部结构的机制,更重要的是,不同的类型的集合都可以使用相同的统一机制,这种机制则被称为 迭代器模式。
  • 目的:提供一种顺序遍历聚合对象元素,而不暴露其内部实现的方法。

命令模式&中介者模式

对象池模式&解释器模式

代理模式

  • 目的:提供一个实际代理对象,以便更好的控制实际对象。

使用Java8改造后的模板方法模式真的是yyds

posted @ 2025-07-26 16:12  飘来荡去evo  阅读(5)  评论(0)    收藏  举报