设计模式-可复用面向对象软件的基础读书笔记-结构型模式

主旋律

处理类或对象的组合


Adapter 适配器

意图

将一个类的接口转换为客户希望的另外一个接口 可以使得接口不兼容不能一起工作的类可以一起工作

结构图 分两种
一种类适配器 一种对象适配器

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

Client在Adapter实例上调用一些操作 接着适配器调用Adaptee的操作试下这个请求

适用性

  1. 你想使用一个已经存在的类 但是他的接口不符合我们的要求
  2. 创建一个可复用的类 该类可以与其他不相关的类或不可预见的类(即接口可能不一定兼容的类)协同工作
  3. 想使用已经存在的子类 但是又方便对每一个子类都适配去匹配他们的接口 这时对象适配器可以对父类适配

问题

  1. 重定义adaptee的行为比较困难
  2. 使用适配器的一个潜在问题是 他们不对所以的客户都透明

实现

  1. c++通常 public继承Target private继承adaptee
  2. 可插入的适配器 需要找到adaptee的窄接口 用于适配的最小的操作集 对于窄接口通常有以下三种方法
    2.1 抽象 (感觉类似于将窄接口的操作当做工厂方法)
    2.2 使用代理对象 (类似组合一个父类指针然后多态)
    2.3 使用参数化的适配器
    在这里插入图片描述

相关模式

  1. Bridge模式的出发点不同 Bridge模式的目的是将接口的部分和实现分离 从而可以更加独立的改变对象
    而Adapter意味着改变一个已有对象的接口
  2. Decorator模式增加了其他对象的功能又不改变他们的接口 并且Decorator支持递归哈哈
  3. Proxy模式在不改变接口的情况下 定义了另一个对象的代理

Bridge 桥接

意图

将抽象部分与他的实现部分分离 使他们都可以独立变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值