一,Adapter适配器模式是将两个不兼容的类组合在一起使用,如下例子
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _6.适配器模式 { //保留现有类所提供的服务,向客户提供接口,以满足客户的期望。 class Program { static void Main(string[] args) { //正常的接口实现方法 ISpeak ispeak = new Chinese(); ispeak.Say(); //第一种:Adapter适配器模式实现方法 EnglishAdapter enaAdapter = new EnglishAdapter(); enaAdapter.Say(); //第二种:Adapter适配器模式实现方法 ISpeak ispeak2 = new JapanAdapter(); ispeak2.Say(); Console.ReadKey(); } } //抽象接口 public interface ISpeak { void Say(); } //接口具体实现依赖于抽象接口 public class Chinese : ISpeak { public void Say() { Console.WriteLine("中文"); } } //第一种:Adapter适配器模式是将两个不兼容的类组合在一起使用,接口具体实现依赖于抽象接口 public class EnglishAdapter : ISpeak { private English english = new English(); public void Say() { this.english.SayEnglish(); } } public class English { public void SayEnglish() { Console.WriteLine("英文"); } } //第二种:Adapter适配器模式中间类继承实现 public class JapanAdapter : Japan, ISpeak { public void Say() { SayJapan(); } } public class Japan { public void SayJapan() { Console.WriteLine("日文"); } } }
综上:
1》适配器模式是通过一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。
2》适配器模式有两种实现方式:一是继承实现,二是直接在适配器调用需要适配的类接口,从而实现客户端可以调用到需要适配的类接口
适配器的使用场景:
一,当适用一个已存在的类,而它的接口不符合所要求的情况;
二,想要创建一个可以复用的类,该类可以与原接口的类协调工作;
三,如:在当前系统中,我们存在一个公共的酒店接口interface,返回的数据类型格式已经确定,而此时,我们添加新的酒店,并且要实现该接口,但是新酒店的数据格式不一致,这时怎么办?我们就需要用到适配器了,我们通过适配器将数据格式转换成一致,然后就可以实现相同的接口。