结构型模式

适配器

在这里插入图片描述
在这里插入图片描述

类适配器--实例代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(1).使用场景是
存在一个已有类型与我们的目标类型较为契合,但已有类型的接口和目标类型不匹配
(2). 思想
定义一个类公有继承接口类,私有继承已有类型.类的接口实现中,可以利用已有类型的功能实现类的接口

对象适配器--代码实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

- 使用场景是
存在一个已有类型与我们的目标类型较为契合
但已有类型的接口和目标类型不匹配
- 思想
定义一个类公有继承接口类
类包含一个已有类型数据成员
接口实现中,可利用已有类型数据成员进行实现

桥接

在这里插入图片描述

代码实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

- 适合
两个平行的层次
一个层次为功能的高级抽象层次
一个层次为底层基础功能的不同实现层次
桥接让两个层次分离

组合

在这里插入图片描述
在这里插入图片描述

代码实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

- 一个常见的模式
利用基础部件和复合部件,实际可以形成对一个多层结构的大的实体的拆分建模
形成了一个多叉树的结构,
树中每个节点皆为共同抽象类的子类.
叶子节点为抽象类的基础子类.
非叶节点为抽象类的复合子类

装饰

在这里插入图片描述

代码实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

- 装饰类与被装饰类处于同一类层次结构
通过装饰类为被装饰类以添加额外一层处理,且可进行装饰的嵌套

外观

在这里插入图片描述

代码实例

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

- 上述过程的解释
编译是一件复杂的工作,但通过外观模式,
首先有一个负责编译的外观类,提供简单接口进行编译.
在类的功能实现中,将工作拆分成若干模块,
由类的实现部分对各个模块进行分工,协调,完成一个整体的工作.
带来的好处:
1.客户使用简单
2.各个功能子模块可以独立进化,可以对一个子模块有多个不同实现,

编译流程:
给定输入文件,
一个扫描模块负责对输入文件进行扫描
一个解析模块负责扫描文件建立文件信息多叉树的对象表示
多叉树节点对象自身是一个类层次,反映所有独立解析单元的类别
对多叉树进行编译,在遍历到每个节点时,依据节点和状态信息进行代码生成

- 此模式适合
有一个复杂功能
对功能实现进行模块划分,独立实现不同模块
提供一个外观类给客户使用,外观类负责对各个模块分工协调实现所需功能

享元

在这里插入图片描述

代码实例

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

- 思想是在某一个对象集合中每个对象会被多次重复使用下
为了避免同一对象多次重复创建,减少不必要的创建时间,
可以对这样的对象集合按对象池来管理.
即通过对象工厂提供对象获取接口,
工厂维护一个对象池,对要获取的对象,先在对象池中查找,
找到直接返回.
找不到,创建新对象,加入对象池并返回.
- 适合于对象集合数量可预测情形

代理

在这里插入图片描述

代码实例

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

- 代理
一个类A存储类B对象的指针
在访问类B对象之前,类A可作一些类似权限检查,合法性检测等工作.
类B可保持相对纯净.	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值