Head First Design Patterns -适配器模式与外观模式

适配器模式

什么是适配器模式

适配器模式,将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作。

类图

在这里插入图片描述

代码

利用Enumeration来适配Iterator,外部只需要调用这个适配器,即可以像调用Iterator那样,外部调用感知不到适配器内部是怎么工作的。

public class IteratorEnumeration implements Enumeration<Object> {
    Iterator<?> iterator;

    public IteratorEnumeration(Iterator<?> iterator) {
        this.iterator = iterator;
    }

    @Override
    public boolean hasMoreElements() {
        return iterator.hasNext();
    }

    @Override
    public Object nextElement() {
        return iterator.next();
    }

}

外观模式

什么是外观模式

外观模式为子系统中的一组接口,提供了一个统一的接口。外观定义了一个更高级别的接口,使得子系统更容易使用。

类图

在这里插入图片描述

代码

这块的代码比较简单且臃肿,就不列举了。简单来说就是为子系统内的众多类A、B、C、D,包装了另外一个类E,该类拥有其他类的引用。然后该类会暴漏出一个简单易用的接口,该接口做了子系统众多类所做的事情。

涉及到的设计原则

最少知识原则:只和密友谈话,减少对象之间的交互。

相关推荐

  1. 适配器模式

    2024-03-21 23:58:01       44 阅读
  2. 适配器模式

    2024-03-21 23:58:01       46 阅读
  3. 适配器模式

    2024-03-21 23:58:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 23:58:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 23:58:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 23:58:01       87 阅读
  4. Python语言-面向对象

    2024-03-21 23:58:01       96 阅读

热门阅读

  1. Python Web开发记录 Day14:Django part8 订单管理

    2024-03-21 23:58:01       40 阅读
  2. VUE tinymce editor 配置手册-封装组件

    2024-03-21 23:58:01       47 阅读
  3. 【C#】Microsoft learn入门C#教程简介

    2024-03-21 23:58:01       36 阅读
  4. 20.python——数据读取与存储

    2024-03-21 23:58:01       46 阅读
  5. macOS安装erlang以及rabbitMq详情版本

    2024-03-21 23:58:01       41 阅读
  6. rust - 对文件夹进行zip压缩加密

    2024-03-21 23:58:01       56 阅读
  7. web蓝桥杯真题:灯的颜色变化

    2024-03-21 23:58:01       44 阅读
  8. 软件测试面试接口测试常见问题

    2024-03-21 23:58:01       45 阅读
  9. 【C语言】对称密码——栅栏的加密和解密

    2024-03-21 23:58:01       39 阅读
  10. 什么是虚拟dom

    2024-03-21 23:58:01       41 阅读
  11. Linux之shell文本搜索工具grep

    2024-03-21 23:58:01       41 阅读
  12. android VPN 数据包解析

    2024-03-21 23:58:01       47 阅读