23种设计模式:适配器模式
适配器模式
1.介绍
概念
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。
主要作用
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
解决的问题
主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。
使用场景
有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。
(引用自菜鸟教程)
2.实现
背景
为两个银行提供一个相同的接口。
实现步骤
1.工商和建设的接口代码。
//工商银行
public class Icbc
{
//工商银行提供的接口方法
public void GsPay()
{
Console.WriteLine("我是工商银行,你要用我!存钱?");
}
}
//建设银行
public class Ccb
{
//建设银行提供的接口方法
public void JsPay()
{
Console.WriteLine("我是建设银行,你要用我!取钱?");
}
}
2.适配器插销转换代码。
//插线板
public interface Ipay
{
void Pay();
}
//针对工商银行的插销
public class IcbcApter :Icbc, Ipay
{
public void Pay()
{
base.GsPay();
}
}
//针对建设银行的插销
public class CcbApter : Ccb, Ipay
{
public void Pay()
{
base.JsPay();
}
}
3.客户端调用。
public static void Main()
{
//工商
Ipay ipay = new IcbcApter();
ipay.Pay();
//建设
Ipay cpay = new CcbApter();
cpay.Pay();
Console.ReadLine();
}