23种设计模式之适配器模式(Adapter)
适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在类适配器模式中,通过使用一个具体类将适配者适配到目标接口中;在对象适配器模式中,一个适配器可以将多个不同的适配者适配到同一个目标。
/// <summary> /// 圆形类 /// </summary> public class Circle : Shape { private XXCircle pcx = new XXCircle();//实例化XXCircle对象 public void Display() { pcx.DisplayIt();//让XXCircle做实际工作 } } /// <summary> /// 线性 /// </summary> public class Line : Shape { public void Display() { //program code } } /// <summary> /// 面积 /// </summary> public class Square : Shape { public void Display() { //program code } }
/// <summary> /// 显示形状接口 /// </summary> public interface Shape { void Display(); } /// <summary> /// 具体实际工作的类 /// </summary> public class XXCircle { /// <summary> /// 实际显示 /// </summary> public void DisplayIt() { Console.WriteLine(this.GetType().Name + ":我来显示啦!"); } }
/// <summary> /// 简单工厂类 /// </summary> public class Factory { /// <summary> /// 获取形状对象 /// </summary> /// <param name="type">类别</param> /// <returns>形状对象</returns> public Shape GetShapeInstance(int type) { switch (type) { case 1: return new Line();//线性 case 2: return new Square();//面积 case 3: return new Circle();//圆形 default: return null;//空 } } }
class Program { static void Main(string[] args) { //适配器模式 int type = 3; Factory factory = new Factory(); Shape s; s = factory.GetShapeInstance(type); if (s == null) { Console.WriteLine("Error get the instance!"); return; } s.Display(); return; } }
23种设计模式之适配器模式(Adapter)相关推荐
- 二十三种设计模式[6] - 适配器模式(Adapter Pattern)
前言 适配器,属于类结构型模式.<设计模式 - 可复用的面向对象软件>一书中将之描述为" 将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可 ...
- 在王者荣耀角度下分析面向对象程序设计B中23种设计模式之适配器模式
· 适配器模式在王者荣耀中的应用 · 应用一:元歌通过傀儡假扮敌方的任意英雄 应用二:王者荣耀iOS与安卓互通 一.简述 简单来讲,适配器模式就是通过一个适配器将一个类的接口变成客户端所期待的另一种接 ...
- 23种设计模式之适配器模式
适配器模式的定义 定义: 将一个类的接口变换成客户端所期待的另一种接口, 从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 通俗的说, 就是有 A.B两个接口, 现在要求把A和B安装在一 ...
- (六)JAVA设计模式23种设计模式之适配器模式实例demo
适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能. 这种模式涉及到一个单一的类,该类负责加入独立的 ...
- 23种设计模式(6)-适配器模式
适配器模式 1.概述 2.适配器模式的用途 3.模式中的角色 4.实现方式 5.类适配器和对象适配器的权衡 6.缺省适配模式 1.概述 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原 ...
- 23种设计模式之模板方法
23种设计模式总篇:chenmingyu.top/design/ 模板方法 模板方法属于行为型模式 定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中.使得子类可以不改变一个算法的结构即可重定 ...
- Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- 【设计模式】Java 23种设计模式对比总结
一.设计模式的分类 创建型模式,共五种(1-5):工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种(6-12):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...
- 【java】java开发中的23种设计模式详解
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
最新文章
- 东半球最接地气的短链接系统设计
- JMC | 人工智能在药物发现中的应用:走进广阔的天地
- 启动tomcat报StandardServer.await: create[8005] 故障解决
- BeagleBone Black QNX6.6 BSP中IPL的完善
- C++:05---class和struct
- codeforces 558E A Simple Task 线段树
- CI/CD:DevOps背后的推动力
- 中国矿业大学本科毕业设计Latex模板cumtthesis
- 推荐一款PDF阅读工具Apabi Reader
- 【干货】前端开发者最常用的六款IDE
- python识别手写文字_深度学习---手写字体识别程序分析(python)
- python怎么下载panda包_pandas python下载
- 【HCIE-RS 天梯路】MSDP
- AC自动机(Automaton)
- 大数据审计的发展_大数据时代对审计发展的影响
- vivo x9s支持html,vivo X9s屏幕材质_vivo X9s屏幕分辨率-太平洋IT百科
- Brother打印机无线连接电脑端脱机状态解决方法
- js重写alert事件,避免alert弹框标题出现网址
- Arduino的密码锁
- MES系统汽车底盘生产线数据追溯糸统源码
热门文章
- HDU-3746-Cyclic Nacklace
- Nginx之HTTP过滤模块
- 【读薄Effective Java】创建和销毁对象
- 【算法与数据结构】汉诺塔问题Java实现
- Android Fragment详解(二):Fragment创建及其生命周期
- NSTimer 增加引用计数, 导致内存泄露,
- ASP.NET、Ajax、Silverlight学习电子资料汇总
- linux zipinfo 命令详解
- Linux入门!Linux无法联网解决办法!CentOS7、VMPlayer、VMWareWorkstation16资源!VMWareWorkstation16序列号!VMware安装Centos7!
- linux内核模块签名,如何签名内核模块Ubuntu 18.04