博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23种设计模式之适配器模式(Adapter)
阅读量:6838 次
发布时间:2019-06-26

本文共 1635 字,大约阅读时间需要 5 分钟。

适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在类适配器模式中,通过使用一个具体类将适配者适配到目标接口中;在对象适配器模式中,一个适配器可以将多个不同的适配者适配到同一个目标。

 

///   /// 圆形类  ///   public class Circle : Shape  {      private XXCircle pcx = new XXCircle();//实例化XXCircle对象      public void Display()      {          pcx.DisplayIt();//让XXCircle做实际工作      }  }    ///   /// 线性  ///   public class Line : Shape  {      public void Display()      {          //program code      }  }    ///   /// 面积  ///   public class Square : Shape  {      public void Display()      {          //program code      }  }
///   /// 显示形状接口  ///   public interface Shape  {      void Display();  }    ///   /// 具体实际工作的类  ///   public class XXCircle  {      ///       /// 实际显示      ///       public void DisplayIt()      {          Console.WriteLine(this.GetType().Name + ":我来显示啦!");      }  }
///   /// 简单工厂类  ///   public class Factory  {      ///       /// 获取形状对象      ///       /// 类别      /// 
形状对象
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;      }  }

 

转载地址:http://mkzul.baihongyu.com/

你可能感兴趣的文章
【转】C++调用Matlab的.m文件
查看>>
android126 zhihuibeijing 极光推送
查看>>
HTML 中表格table 的相关知识
查看>>
[转] WinForm实现移除控件某个事件的方法
查看>>
使用PM2将Node.js的集群变得更加容易
查看>>
Python 微信公众号开发
查看>>
牛刀小试Oracle之ORACLE 11GR2 RAC安装配置--先决配置阶段(一)
查看>>
Selenium私房菜系列7 -- 深入了解Selenium RC工作原理(2)
查看>>
设置devenv命令的启动版本
查看>>
前端模拟发送数据/调试的好工具:Chrome下的Postman-REST Client
查看>>
C语言中的内存分配与释放
查看>>
11g 重建EM 报ORA-20001: SYSMAN already exists
查看>>
记录一个在制作Swing程序的小怪事
查看>>
linux 串口驱动(二)初始化 【转】
查看>>
dynamic webservice
查看>>
elasticsearch ——id字段说明,内部是_uid
查看>>
ASP.NET企业开发框架IsLine FrameWork系列之十一--HttpContentProvider 访问缓存
查看>>
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境【转】...
查看>>
Android开发视频教学第一季(1-16集)视频&源码下载
查看>>
linux下共享内存mmap和DMA(直接访问内存)的使用 【转】
查看>>