大话设计模式-适配器模式
适配器模式
适配器模式将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式的作用
系统的数据和行为都正确,但接口不符时,应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用与希望服用一些现存的类,但是接口又与复用环境要求不一致的情况。
两种适配器模式
适配器模式分为类适配器模式和对象适配器模式,类适配器模式通过多重继承对一个接口与另一个接口进行匹配。但C#不支持多重继承所以这里间的格式对象适配器。
使用适配器模式的时机
使用一个已经存在的类,但如果他的接口也就是他的方法和你要求的不相同时,就应该考虑使用适配器模式。两个类所做的事情相同或相似,但是具有不同的接口时要使用他。在双方都不太容易修改的适合再使用适配器模式适配。
适配器模式结构演示
期望的接口
class Target{ public virtual void Request() => Console.WriteLine("normal request"); }
需要适配的类
class Adaptee{ public void SepcificRequest() => Console.WriteLine("specific request"); }
适配器类
在内部包装一个需要适配的类,把期望的接口转换成要适配的接口。
class Adapter : Target{ private Adaptee adaptee = new Adaptee(); public override void Request() => adaptee.SepcificRequest(); }
测试类
Target target = new Adapter(); target.Request(); //测试结果 specific request
适配器模式的.NET应用
.NET在有一个类库已经实现、非常重要的适配器——DateAdapter。DataAdapter用作DateAdapter和数据元之间的适配器以便检索和保存数据。
其映射Fill,更改了DateSet中的数据以便于数据源中的数据相匹配,和Update,更改了数据源中的数据以便与DataSet中的数据相匹配,来提供这一适配器。