C#设计模式之适配器设计模式(Adapter)

结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式。

后续内容将包括以下结构模式:

适配器模式(Adapter):Match interfaces of different classes

合成模式(Composite):A tree structure of simple and composite objects

装饰模式(Decorator):Add responsibilities to objects dynamically

代理模式(Proxy):An object representing another object

享元模式(Flyweight):A fine-grained instance used for efficient sharing

门面模式(Facade):A single class that represents an entire subsystem

桥梁模式(Bridge):Separates an object interface from its implementation

一、适配器(Adapter)模式

适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。

名称由来

这很像变压器(Adapter),变压器把一种电压变换成另一种电压。美国的生活用电电压是110V,而中国的电压是220V。如果要在中国使用美国电器,就必须有一个能把220V电压转换成110V电压的变压器。这个变压器就是一个Adapter。

Adapter模式也很像货物的包装过程:被包装的货物的真实样子被包装所掩盖和改变,因此有人把这种模式叫做包装(Wrapper)模式。事实上,大家经常写很多这样的Wrapper类,把已有的一些类包装起来,使之有能满足需要的接口。

适配器模式的两种形式

适配器模式有类的适配器模式和对象的适配器模式两种。我们将分别讨论这两种Adapter模式。

时间: 2024-08-18 07:30:22

C#设计模式之适配器设计模式(Adapter)的相关文章

Android设计模式之适配器(Adapter)模式_Android

本文实例为大家分享了Android适配器模式源码,供大家参考,具体内容如下 1. 模式介绍 1.1模式的定义: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 1.2模式的使用场景: 用电源接口做例子,笔记本电脑的电源一般都是接受5V的电压,但是我们生活中的电线电压一般都是220V的输出.这个时候就出现了不匹配的状况,在软件开发中我们称之为接口不兼容,此时就需要适配器来进行一个接口转换.在软件开发中有一句话正好体现了这点:任

C#设计模式(7)——适配器模式(Adapter Pattern)

原文:C#设计模式(7)--适配器模式(Adapter Pattern) 一.引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象.那么如果将"将现存的对象"在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式--使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用. 二.适配器模式的详细介绍 2.1 定义  下面让我

关于适配器设计模式,我越来越糊涂了

问题描述 以下是老师给我们讲适配器设计模式举得例子,我怎么都看不懂,感觉没有用到适配器设计模式,或者是老师本身举得这个例子就太绕了,我真的晕了.有谁给我细说说这些代码?interfacePowerSourceA{voidinsert();}classPowerSourceAImplimplementsPowerSourceA{publicvoidinsert(){System.out.println("电源A开始工作了...");}}interfacePowerSourceB{void

php设计模式 建造者模式 与Adapter(适配器模式)

php教程设计模式 建造者模式 与Adapter(适配器模式) 适配器模式 * * 将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作 建造者模式 * * 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示 <?php /** * 适配器模式 * * 将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作 */ // 这个是原有的类型 class OldCache { public

[Head First设计模式]生活中学设计模式——外观模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

[Head First设计模式]生活中学设计模式——迭代器模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

[Head First设计模式]生活中学设计模式——状态模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

[Head First设计模式]生活中学设计模式——组合模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

Java设计模式中单例设计模式

什么是设计模式? 设计模式就是解决某一类问题最为行之有效的方法 Java中有23中设计模式,接下来要讲的是单例设计模式 单例设计模式:解决一个类在内存只存在一个对象 其目的为:想要保证对象唯一 有以下几张情况,可以考虑使用单例设计模式 1.为了避免其他程序过多建立该类对象,新禁止其他程序建立该类对象 2.还W为了让其他程序可以访问到给类对象,只好在本类中,自定义一个对象 3.为了方便其他程序对自定义对象的访问,课对外提供一些访问方式 如何用代码实现这一目的? 用以下三步代码体现; 1.将构造函数