知识大全 .NET简谈设计模式之(适配器模式)

Posted

篇首语:活着,如同生命中最后一天般活着。学习,如同你会永远活着般学习。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .NET简谈设计模式之(适配器模式)相关的知识,希望对你有一定的参考价值。

.NET简谈设计模式之(适配器模式)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  今天我们要学习的是设计模式中的适配器模式 适配器模式其实也比较好理解 光从它的名字我们都能理解个所以然了

  适配器模式定义 将一个类的接口转换成客户希望的另外一个接口 适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作

  上面的这段话可能对初学者来说有点抽象 短短的一段话提到了几个关键的技术点 都是一些基本语法 如果我们还没有掌握这些语法最好还是先去解决前提再来攻克设计模式

  那到底啥叫适配器模式 这个 适配 很形象 生动的形容了所表达的意思 那么一般用在什么地方呢?怎么来解决一些接口不兼容的情况下的问题 下面我们就来由浅入深的进行理解 学习 [王清培版权所有 转载请给出署名]

  [面向对象编程就是对大自然进行虚拟的 抽象的建模 只要我们结合身边的事物 多思考 多想象 很多东西都能迎刃而解 ]

  我们还是用问题来作引导 这样便于我们自己开动大脑进行自主的学习 在日常生活中我们经常碰见一些无法直接对接的现象 比如自来水管 竹筒 插座等等 这些东西都会由于两头没有一个标准 导致无法直接连接使用 自来水管从地底下通往各个住户家中 但是不可能几十万的住户用很细的水管吧 必须用很粗的水管进行送水 但是到了住户家中不可能用那么粗的水管使用吧 所以从水厂到我们使用水之间是经历很多环节的适配过程 到了住户家中必须用细的水管进行使用 在送水的过程中必须用很大的水管进行送水

  

  

  上图中的每一个画红线的地方都是需要适配的地方 在使用的时候必须进行接口的对接才能使用

  我们都有使用插座的习惯 我们的笔记本假如是两眼插座的 但是插线板只有三眼的 怎么办?难道这个就不能用了吗?当然不是 我们需要一个能对接三眼插座的插线板 这样我们就能使用电脑了 请看图

  

  

  这两个例子都说明了适配器的作用 我们不能因为接口不同导致两个工具不能使用起来 就好比图 中的水桶和水厂两个对象 其实这两个对象之间只需要用适配器进行对接一下就能成功的使用 我们来看代码怎么实现

  水厂代码

  using System;using System Collections Generic;using System Text;namespace ConsoleApplication public class 水厂水厂供水接口 符合接口的水管;//水厂只认识该标准的接口public void 对接(水厂供水接口 接口)              符合接口的水管 = 接口;

  public void 送水()符合接口的水管 送水( 送出 吨水 );

  

  

  水厂供水接口代码

  using System;using System Collections Generic;using System Text;namespace ConsoleApplication public interface 水厂供水接口int 水管直径 get;

  void 送水(string 要送的水);

  

  各地区水桶代码

  using System;using System Collections Generic;using System Text;namespace ConsoleApplication public class 各地区水桶string 保存水的容器 = string Empty;public void 送水来了(string 水)保存水的容器 = 水;Console WriteLine( 已经收到水厂送来的 + 水);

  

  

  水桶适配器代码

  using System;using System Collections Generic;using System Text;namespace ConsoleApplication public class 水桶适配器 : 水厂供水接口各地区水桶 水桶;#region 水厂供水接口 成员public int 水管直径get return ;

  

  public void 设置适配对象(各地区水桶 桶)水桶 = 桶;

  public void 送水(string 要送的水)水桶 送水来了(要送的水);

  #endregion

  

  模拟调用代码

  using System;using System Collections Generic;using System Text;namespace ConsoleApplication class Programstatic void Main(string[] args)水厂 shuichang = new 水厂();各地区水桶 shuitong = new 各地区水桶();水桶适配器 shuitongadapter = new 水桶适配器();shuitongadapter 设置适配对象(shuitong);shuichang 对接(shuitongadapter);shuichang 送水();Console ReadLine();

  

cha138/Article/program/net/201311/12656

相关参考

知识大全 .net设计模式之观察者模式

  故事    小雪是一个非常漂亮的女孩漂亮的女孩总是有很多的追求者而且追求者的队伍在不断的变动随时有人进入这个队伍也有人退出男孩们追求女孩时总是表现出%的关心当小雪私自游玩时总是不断收到追求者询问小

知识大全 适配器模式

Java与模式:适配器模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 适配器(adapter)模式

  适配器模式的宗旨是保留现有类提供的服务向客户提供接口使得原本接口不兼容而功能相同的类一起工作客户提供接口让实现一些个功能而我们已经有类实现了相同的功能但是两者的接口是不兼容的现在可以实现一个新的类

知识大全 教程:适配器模式(Adapter Pattern)组图

教程:适配器模式(AdapterPattern)组图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 网络适配器的连接速度和双工模式怎么调网速最快

网络适配器的连接速度和双工模式怎么调网速最快连接速度和双式模型里面,改成全双工100M的那个还有就是打开QOS数据包里面受限的20%带宽:(“开始”→“运行”中输入gpedit.msc(扩展名一定不能

知识大全 25种java模式代码参考手册

  抽象工厂(AbstractFactory)模式意图:为特定的客户(或情况)提供特定系列的对象  类的适配器(Adapter)模式意图:将一个类的接口转换成客户希望的另外一个接口  对象的适配器(A

知识大全 .NET简谈反射(动态调用)

.NET简谈反射(动态调用)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们继续C#基础知识

知识大全 设计模式与VB .net代码 外观模式,合成模式

设计模式与VB.net代码外观模式,合成模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  外观

知识大全 VB.net 学习设计模式(中介者模式)

VB.net学习设计模式(中介者模式)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!将一些对象的相

知识大全 .NET MVVM设计模式简介

.NETMVVM设计模式简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MVVM模式能够帮你