适配器模式
2013-10-24 14:24
302 查看
作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
模式中的角色:
目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
需要适配的类(Adaptee):需要适配的类或适配者类。
适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。
UML图:
代码:
调用:
模式中的角色:
目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
需要适配的类(Adaptee):需要适配的类或适配者类。
适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。
UML图:
代码:
/// <summary> /// 定义客户端期待的接口 /// </summary> public class Target { /// <summary> /// 使用virtual修饰以便子类可以重写 /// </summary> public virtual void Request() { Console.WriteLine("This is a common request"); } } /// <summary> /// 定义需要适配的类 /// </summary> public class Adaptee { public void SpecificRequest() { Console.WriteLine("This is a special request."); } } /// <summary> /// 定义适配器 /// </summary> public class Adapter:Target { // 建立一个私有的Adeptee对象 private Adaptee adaptee = new Adaptee(); /// <summary> /// 通过重写,表面上调用Request()方法,变成了实际调用SpecificRequest() /// </summary> public override void Request() { adaptee.SpecificRequest(); } }
调用:
// 对客户端来说,调用的就是Target的Request() Target target = new Adapter(); target.Request();
相关文章推荐
- 用户和组
- 关于VS 2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏解决方案
- JPA的主键产生策略
- !important
- 适配iOS7之—UITableView和UISearchBar
- Kinect for Windows SDK开发入门(一):开发环境配置
- java String类
- C# Label显示多行文本及换行(WinForm/WebForm)
- 时间戳转换工具
- 深入理解硬盘的Linux分区
- hdu_2084数塔(动态规划--初步)
- Linux 系统的目录结构
- 智能指针(Smart Pointer)
- 提高效率的秘诀
- 深入理解硬盘的Linux分区
- android clip
- ORA-29701: unable to connect to Cluster Synchronization Service
- 浅谈如何用We7站群平台打造垂直性政务网站
- NSInvocation的使用
- dom4j解析xml文件