设计模式笔记

文章目录

  • 设计模式笔记
  • 一、创建型模式
    • 工厂方法
    • 抽象工厂
    • 生成器
    • 原型
    • 单例
  • 二、结构型模式
    • 适配器
    • 桥接
    • 装饰
    • 代理
  • 三、行为模式
    • 迭代器
    • 观察者
    • 模板方法

设计模式笔记

这个只能理解记忆,很多时候有些结构容易记混淆,结合例子记忆会好些,记录一篇方便以后回来看看哈哈哈

分为三种类型:

一、创建型模式

创建型模式提供了创建对象的机制,能够提升已有代码的灵活性和可复用性。

工厂方法

工厂方法是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。

设计模式笔记_第1张图片
设计模式笔记_第2张图片
==== 设计模式笔记_第3张图片
设计模式笔记_第4张图片
设计模式笔记_第5张图片
示例:=================================================================
以下示例演示了如何使用工厂方法开发跨平台 UI(用户界面)组件,并同时避免客户代码与具体 UI 类之间的耦合。
设计模式笔记_第6张图片
设计模式笔记_第7张图片
设计模式笔记_第8张图片
设计模式笔记_第9张图片
适合应用场景:
当你在编写代码的过程中,如果无法预知对象确切类别及其依赖关系时,可使用工厂方法。
如果你希望用户能扩展你软件库或框架的内部组件,可使用工厂方法。
如果你希望复用现有对象来节省系统资源,而不是每次都重新创建对象,可使用工厂方法。
设计模式笔记_第10张图片
设计模式笔记_第11张图片
设计模式笔记_第12张图片

抽象工厂

抽象工厂是一种创建型设计模式,它能创建一系列相关的对象,而无需指定其具体类。

设计模式笔记_第13张图片
设计模式笔记_第14张图片
设计模式笔记_第15张图片
设计模式笔记_第16张图片
设计模式笔记_第17张图片
设计模式笔记_第18张图片设计模式笔记_第19张图片
设计模式笔记_第20张图片
在这里插入图片描述

生成器

生成器是一种创建型设计模式,使你能够分步骤创建复杂对象。该模式允许你使用相同的创建 
代码生成不同类型和形式的对象。

设计模式笔记_第21张图片
设计模式笔记_第22张图片
设计模式笔记_第23张图片
设计模式笔记_第24张图片
设计模式笔记_第25张图片
设计模式笔记_第26张图片
设计模式笔记_第27张图片
设计模式笔记_第28张图片

原型

原型是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。

设计模式笔记_第29张图片
设计模式笔记_第30张图片
设计模式笔记_第31张图片
设计模式笔记_第32张图片
设计模式笔记_第33张图片
设计模式笔记_第34张图片

单例

单例是一种创建型设计模式,让你能够保证一个类只有一 个实例,并提供一个访问该实例的全局节点。

设计模式笔记_第35张图片

二、结构型模式

结构型模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。

适配器

适配器是一种结构型设计模式,它能使接口不兼容的对象能够相互合作。

设计模式笔记_第36张图片
设计模式笔记_第37张图片
设计模式笔记_第38张图片
设计模式笔记_第39张图片
示例:==================================================================

设计模式笔记_第40张图片
适配器假扮成一个圆钉 (RoundPeg), 其半径等于方钉(SquarePeg)横截面对角线的一半(即能够容纳方钉的最小外接圆的半径)。
设计模式笔记_第41张图片
设计模式笔记_第42张图片
设计模式笔记_第43张图片

桥接

桥接是一种结构型设计模式,可将一个大类或一系列紧密 相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。

设计模式笔记_第44张图片
设计模式笔记_第45张图片
设计模式笔记_第46张图片
设计模式笔记_第47张图片
示例:==============================================================
设计模式笔记_第48张图片
设计模式笔记_第49张图片
设计模式笔记_第50张图片
设计模式笔记_第51张图片
设计模式笔记_第52张图片

装饰

装饰是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。

设计模式笔记_第53张图片
设计模式笔记_第54张图片
设计模式笔记_第55张图片

代理

代理是一种结构型设计模式,让你能够提供对象的替代品 或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。

设计模式笔记_第56张图片
设计模式笔记_第57张图片
设计模式笔记_第58张图片

三、行为模式

行为模式负责对象间的高效沟通和职责委派。

迭代器

迭代器是一种行为设计模式,让你能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。

设计模式笔记_第59张图片
设计模式笔记_第60张图片
设计模式笔记_第61张图片
设计模式笔记_第62张图片
设计模式笔记_第63张图片
设计模式笔记_第64张图片

观察者

观察者是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。

设计模式笔记_第65张图片
设计模式笔记_第66张图片
设计模式笔记_第67张图片
如果你的应用中有多个不同类型的发布者,且希望订阅者可兼容所有发布者,那么你甚至可以进一步让所有订阅者遵循同样的接口。该接口仅需描述几个订阅方法即可。这样订阅者就能在不与具体发布者类耦合的情况下通过接口观察发布者的状态。
设计模式笔记_第68张图片
设计模式笔记_第69张图片
示例:================================================================
设计模式笔记_第70张图片
设计模式笔记_第71张图片设计模式笔记_第72张图片
设计模式笔记_第73张图片
设计模式笔记_第74张图片

模板方法

模板方法是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。

设计模式笔记_第75张图片
设计模式笔记_第76张图片
在这里插入图片描述
设计模式笔记_第77张图片
以上只记录了几个经常用的,后面再慢慢添加!

【参考资料】书籍:深入设计模式(见下方云盘链接)
【资源分享】链接:https://pan.baidu.com/s/1YDGaVxgSk4h5aOWyD4Dtig
提取码:xanh

你可能感兴趣的:(Java学习,设计模式,java)