欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 23种设计模式Java版(带脑图,带示例源码)

23种设计模式Java版(带脑图,带示例源码)

2025/4/19 16:36:33 来源:https://blog.csdn.net/vbhfdghff/article/details/147120151  浏览:    关键词:23种设计模式Java版(带脑图,带示例源码)

在这里插入图片描述

设计模式

1、创建型

1.1、单例模式(Singleton pattern)

  • 确保一个类只有一个实例,并提供该实例的全局访问点。

1.2、工厂方法(Factory Method)

  • 它定义了一个创建对象的接口,但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。

1.3、抽象工厂(Abstract Factory)

  • 抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂方法模式只是用于创建一个对象,这和抽象工厂模式有很大不同。
区别:
抽象工厂:每个工厂可以创建多种类的产品
工厂方法:每个工厂只能创建一类

1.4、生成器(Builder)

  • 生成器(Builder),封装一个对象的构造过程,并允许按步骤构造。

1.5、原型模式(Prototype)

  • 将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。

2、结构型

2.1、外观(Facade)

  • 它提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。

2.2、适配器(Adapter)

  • 将一个类的接口, 转换成客户期望的另一个接口。 适配器让原本接口不兼容的类可以合作无间。 对象适配器使用组合, 类适配器使用多重继承。

2.3、桥接(Bridge)

  • 把事物和其具体实现分开,使他们可以各自独立的变化。

2.4、组合(Composite)

  • 允许你将对象组合成树形结构来表现"部分/整体"层次结构。

2.5、享元(Flyweight)

  • 实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。

2.6、装饰(Decorator)

  • 装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。

2.7、代理(Proxy)

  • 为另一个对象提供一个替身或占位符以控制对这个对象的访问。
区别:
代理模式:将你并不关心的事情交给别人做,偏向于增强行为动作,是行为的扩展
装饰者:拓展自己的能力能做更多的事,偏向于增强类的能力,是对象的扩展

3、行为型

3.1、责任链(Chain Of Responsibility)

  • 有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递。每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。

3.2、策略(Strategy)

  • 定义了算法族, 分别封闭起来, 让它们之间可以互相替换, 且算法的变化不会影响到使用算法的客户。

3.3、模板方法(Template Method)

  • 在一个方法中定义一个算法的骨架, 而将一些步骤延迟到子类中. 模板方法使得子类可以在不改变算法结构的情况下, 重新定义算法中的某些步骤。

3.4、命令模式(Command)

  • 请求以命令的形式包裹在发起者对象中,并传给调用者对象。寻找可以处理该命令的合适的调用者对象,该调用者对象执行命令。
  • 发起者依赖命令,命令依赖执行者。

3.5、观察者(Observer)

  • 在对象之间定义一对多的依赖, 这样一来, 当一个对象改变状态, 依赖它的对象都会收到通知, 并自动更新。即发布订阅模式。

3.6、访问者(Visitor)

  • 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。
  • 可以对定义这么理解:有这么一个操作,它是作用于一些元素之上的,而这些元素属于某一个对象结构。同时这个操作是在不改变各元素类的前提下,在这个前提下定义新操作是访问者模式精髓中的精髓。

3.7、状态(State)

  • 当对象的状态改变时,同时改变其行为。

3.8、解释器(Interpreter)

  • 给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。

3.9、迭代器(Iterator)

  • 提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露其内部的表示。

3.10、中介者(Mediator)

  • 用来降低类类之间的耦合的,具体类类之间的关系及调度交给Mediator处理。
  • 中介者执有每个类的对象。

3.11、备忘录(Memento)

  • 保存对象的某个状态,以便在需要的时候恢复。

脑图、源码

  • https://pan.quark.cn/s/4a59e2bf3841
    在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词