前言
点击查看:设计模式系列
适配器模式(Adapter)
定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。
理解:把多个无关的类匹配同一个接口,客户端实例化接口,使形成一个公共常用的的类结构。
例子:
网购支付:(工商支付,建设支付2种)很显然这是两个不同的开发商做的开发,故提供的接口方法不一致,也理所当然。
共性:获取支付账号,支付欠款,返回处理信息。
不同:提供接口,方法名不同;
工商返回处理信息接口方法名:GsPay()
建行返回处理信息接口方法名:JsPay()
为啦开发使用一个公共的类对这些接口进行处理:整理一个公共常用的类,方便开发调用与简洁。
类图:
工商建设接口代码:
//工商银行 public class Icbc { //工商银行提供的接口方法 public void GsPay() { Console.WriteLine("我是工商银行,你要用我!存钱?"); } } //建设银行 public class Ccb { //建设银行提供的接口方法 public void JsPay() { Console.WriteLine("我是建设银行,你要用我!取钱?"); } }
适配器插销转换代码:
//插线板 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(); } }
客户端调用:
public static void Main() { //工商 Ipay ipay = new IcbcApter(); ipay.Pay(); //建设 Ipay cpay = new CcbApter(); cpay.Pay(); Console.ReadLine(); }
总结适配器模式
适配器模式,就像一个插座一样,把不同类的电器插销都能通过他的转接,正常的运行起来。再比如变压器,让不同的电压转换为统一可用的电压。
有上程序克制,同过适配器的一个转换我们的编程,就变的简单,简洁啦许多,而不用各个攻破所有的银行接口,只需攻读这个适配器即可。由此,适配器模式还是常用,好用的一种模式之一。