7.适配器模式(Adapter Pattern)

时间:2022-09-18 10:13:10
using System;

namespace Test
{
/// <summary>
/// 适配器模式主要解决的问题就是我们要调用的接口类型,无法满足我们新系统的使用需求,
/// 这时候,我们需要将旧系统的接口,通过适配器进行转配,达到支持新接口调用的目的。
/// 对于这样的要求,我们通过适配器就可以完成,当然如果有多个接口需要转配,
/// 那么我们就需要为每一个接口提供一个适配器去完成转换的工作。
/// </summary>
class Program
{
static void Main(string[] args)
{
ISelect adapter = new QueryAdapter();
object o = adapter.GetList();
ISelect adapterEx = new QueryAdapterEx();
object oEx = adapter.GetList();
}
} /// <summary>
/// 旧系统查询接口
/// </summary>
public interface IQuery
{
object QueryList();
} /// <summary>
/// 旧系统的查询服务
/// </summary>
public class Query : IQuery
{
public object QueryList()
{
return new object();
}
} /// <summary>
/// 新系统查询接口
/// </summary>
public interface ISelect
{
object GetList();
} /// <summary>
/// 通过类适配器完成转配操作
/// 类适配器:通过继承的方式来实现,将旧系统的方法进行封装。
/// 对象适配器在进行适配器之间的转换过程中,无疑类适配器也能完成,
/// 但是依赖性会加大,并且随着适配要求的灵活性,可能通过继承膨胀的难以控制。
/// </summary>
public class QueryAdapter : Query, ISelect
{
public object GetList()
{
return base.QueryList();
}
} /// <summary>
/// 通过类适配器完成转配操作
/// 对象适配器:不是通过继承的方式,
/// 而是通过对象组合的方式来进行处理的,
/// 我们只要学过OO的设计原则的都知道,组合相比继承是推荐的方式。
/// </summary>
public class QueryAdapterEx : ISelect
{
private Query query = new Query(); public object GetList()
{
return query.QueryList();
}
} }

7.适配器模式(Adapter Pattern)的更多相关文章

  1. 二十四种设计模式:适配器模式&lpar;Adapter Pattern&rpar;

    适配器模式(Adapter Pattern) 介绍将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.示例有一个Message实体类 ...

  2. 设计模式 - 适配器模式&lpar;adapter pattern&rpar; 具体解释

    适配器模式(adapter pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 适配器模式(adapter pattern): 将一个类的接 ...

  3. 乐在其中设计模式&lpar;C&num;&rpar; - 适配器模式&lpar;Adapter Pattern&rpar;

    原文:乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabc ...

  4. 【设计模式】适配器模式 Adapter Pattern

    适配器模式在软件开发界使用及其广泛,在工业界,现实中也是屡见不鲜.比如手机充电器,笔记本充电器,广播接收器,电视接收器等等.都是适配器. 适配器主要作用是让本来不兼容的两个事物兼容和谐的一起工作.比如 ...

  5. 怎样让孩子爱上设计模式 —— 7&period;适配器模式&lpar;Adapter Pattern&rpar;

    怎样让孩子爱上设计模式 -- 7.适配器模式(Adapter Pattern) 标签: 设计模式初涉 概念相关 定义: 适配器模式把一个类的接口变换成client所期待的还有一种接口,从而 使原本因接 ...

  6. 设计模式 - 适配器模式&lpar;adapter pattern&rpar; 枚举器和迭代器 具体解释

    适配器模式(adapter pattern) 枚举器和迭代器 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考适配器模式(adapter patter ...

  7. 设计模式系列之适配器模式&lpar;Adapter Pattern&rpar;——不兼容结构的协调

    模式概述 模式定义 模式结构图 模式伪代码 类适配器,双向适配器,缺省适配器 类适配器 双向适配器 缺省适配器 模式应用 模式在JDK中的应用 模式在开源项目中的应用 模式总结 主要优点 主要缺点 适 ...

  8. 设计模式&lpar;七&rpar;&colon; 通过转接头来观察&quot&semi;适配器模式&quot&semi;&lpar;Adapter Pattern&rpar;

    在前面一篇博客中介绍了“命令模式”(Command Pattern),今天博客的主题是“适配器模式”(Adapter Pattern).适配器模式用处还是比较多的,如果你对“适配器模式”理解呢,那么自 ...

  9. 适配器模式&lpar;Adapter Pattern&rpar;

    适配器模式概述 定义:将一个类的接口转化成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作.别名(包装器[Wrapper]模式) 它属于创建型模式的成员,何为创建型模式:就是关注如何将 ...

  10. 七个结构模式之适配器模式&lpar;Adapter Pattern&rpar;

    定义: 将一个接口转换为客户需要的另外一个接口,使接口不兼容的类型可以一起工作,也被称为包装器模式(Wrapper Patern). 结构图: Target:目标抽象类,客户所需要的接口. Adapt ...

随机推荐

  1. tomcat(三)--基本安装配置

    0x01  JDK和Tomcat安装 到oracle官网下载jdk,当前下载的版本是Linux x64 jdk-8u101-linux-x64.tar.gz 到apache官网下载tomcat,当前最 ...

  2. perl use base 继承

    centos6.5:/root/podinns/lib#cat First.pm package First; use base qw(Second); sub new { my $self = {} ...

  3. C&num; 语言规范&lowbar;版本5&period;0 &lpar;第16章 异常&rpar;

    1. 异常 C# 中的异常用于处理系统级和应用程序级的错误状态,它是一种结构化的.统一的和类型安全的处理机制.C# 中的异常机制非常类似于 C++ 的异常机制,但是有一些重要的区别: 在 C# 中,所 ...

  4. iOS学习——如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒

    如题,本文主要研究如何在mac上获取开发使用的模拟器的资源以及模拟器中每个应用的应用沙盒.做过安卓开发的小伙伴肯定很方便就能像打开资源管理器一样查看我们写到手机本地或应用中的各种资源,但是在iOS开发 ...

  5. win10使用u盘装回win7

    背景:一朋友要我帮忙把系统从win10装回到win7,因为做IT的嘛,想想也难不倒我,况且以前也经常重装系统,硬盘里就有win7的系统,于是很爽快的答应了.电脑拿过来一试才知道原来有这么多坑,原来的系 ...

  6. A&period; Vasya and Football

    A. Vasya and Football time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  7. 从头开始学Maven【依赖范围】

    例如 <dependencies> <dependency> <groupId></groupId> <artifactId></ar ...

  8. WebAPI框架里设置异常返回格式统一

    直接上代码 /// <summary> /// 消息代理处理,用来捕获这些特殊的异常信息 /// </summary> public class CustomErrorMess ...

  9. Servlet之javax&period;servlet包

    链接 : http://blog.sina.com.cn/s/blog_5d4214c70102wnf1.html

  10. 如何同步删除svn管理的package包目录

    转:https://blog.csdn.net/shiwodecuo/article/details/51754598 eclipse在实际的开发中,当我们的项目由svn进行管理时,若想删除选中的整个 ...