using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AdapterPattern { /// /// 充电线 /// 最终要适配成的目标角色 /// public interface IChargingLine { /// /// 充电方法 /// void Charging(); } /// /// USB数据线(支持USB-Micro端口的设备) /// public class USBMicroLine : IChargingLine { public void Charging() { Console.WriteLine("为支持USB-Micro端口的设备充电!"); } } /// /// 原装数据线 /// 未定义充电标准的充电方法 /// public class USBLine { public void Charge() { Console.WriteLine("为设备充电!"); } } /// /// 苹果充电线适配器 /// 类适配器模式 /// public class USBlightingLineAdapter : USBLine, IChargingLine { public void Charging() { Console.WriteLine("对USB-Lighting端口的数据线进行适配!"); base.Charge(); } } /// /// 小米5充电线适配器 /// 对象适配器模式 /// public class USBTypecLineAdapter: IChargingLine { private readonly USBLine _usbLine; public USBTypecLineAdapter(USBLine usbLine) { this._usbLine = usbLine; } public void Charging() { Console.WriteLine("对USB-TypeC端口的数据线进行适配!"); this._usbLine.Charge(); } } }