适配器模式
时间:2022-04-26
本文章向大家介绍适配器模式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、简介
1、适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
2、在软件设计的初期要尽量将接口统一,及早发现不统一的接口进行重构,在双方都不太容易修改的时候再使用适配器模式进行适配。
3、UML
4、所属类别:结构型
二、C++程序
1 // 适配器模式.cpp : 定义控制台应用程序的入口点。
2 //
3
4 #include "stdafx.h"
5 #include<iostream>
6 using namespace std;
7
8 class Target//当前要用的普通接口
9 {
10 public:
11 Target(){}
12 virtual ~Target(){}
13 virtual void show()
14 {
15 cout<<"普通请求"<<endl;
16 }
17 };
18 class Adaptee//需要适配的类(需要将这里面的接口转换成Target类那样的接口)
19 {
20 public:
21 Adaptee(){}
22 ~Adaptee(){}
23 void Adaptee_show()
24 {
25 cout<<"特殊请求"<<endl;
26 }
27 };
28 class Adapter:public Target//适配器类
29 {
30 private:
31 Adaptee *adaptee;
32 public:
33 Adapter()
34 {
35 adaptee=new Adaptee();
36 }
37 virtual ~Adapter(){}
38 virtual void show()
39 {
40 adaptee->Adaptee_show();
41 }
42 };
43 int _tmain(int argc, _TCHAR* argv[])
44 {
45 Adapter *adapter=new Adapter();
46 adapter->show();
47 return 0;
48 }
- ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存
- ASP.NET Core的路由[5]:内联路由约束的检验
- .NET Core跨平台的奥秘[下篇]:全新的布局
- Equation Group泄露文件分析
- ModelBinder——ASP.NET MVC Model绑定的核心
- 一句代码实现批量数据绑定[下篇]
- 三种属性操作性能比较:PropertyInfo + Expression Tree + Delegate.CreateDelegate
- 解密Myspace密码的姿势
- weblogic安全配置二三事
- 开发自己的Data Access Application Block[下篇]
- 【CSS】格仔背景
- 这年头真的还有USB设备是安全的吗?
- js的动态加载、缓存、更新以及复用(一)使用范围:遇到的问题:目标:页面结构:正文
- js的动态加载、缓存、更新以及复用(二)恼人的命名冲突
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux与Windows间文件互传之TFTP方式
- 假设检验在数据分析中的应用
- 【前端开发】文本阴影:如何使用text-shadow实现首字线索引效果?
- 9.25【前端开发】超链接伪类:如何在svg元素上使用超链接伪类?
- 竞赛比完,代码、模型怎么处理?Kaggle大神:别删,这都是宝藏
- 9.26【前端开发】背景属性:样式中背景色和背景图片样式如何使用?
- 9.27【前端开发】图片文件格式:常见的图片格式对比有何优劣以及如何使用Google的webp格式?
- 9.28【前端开发】文本属性:如何使用文本阴影等样式?
- 9.29【前端开发】超链接伪类:如何在svg元素上使用超链接伪类?
- Angular input控件的click事件表达式如何被转换成JavaScript函数
- Angular input控件的click事件响应处理的调用上下文
- SAP Spartacus cms.service.ts getComponentData
- toString如何转json
- DàYé玩转数据战略Step By Step
- 突发!Windows XP 源代码泄露