适配器模式(Adapter Pattern)说白了就是把一个接口实现类转换成另外一个接口对象。先看代码:
1 // 目标接口 2 public interface ITarget 3 { 4 void Request(); 5 } 6 7 // 原本不兼容的类 8 public class Adaptee 9 { 10 public void SpecificRequest() 11 { 12 Console.WriteLine("Adaptee's specific request."); 13 } 14 } 15 16 // 适配器类 17 public class Adapter : ITarget 18 { 19 private readonly Adaptee adaptee; 20 21 public Adapter(Adaptee adaptee) 22 { 23 this.adaptee = adaptee; 24 } 25 26 public void Request() 27 { 28 // 通过适配器调用原本不兼容类的方法 29 adaptee.SpecificRequest(); 30 } 31 } 32 33 // 客户端代码 34 public class Client 35 { 36 public static void Main(string[] args) 37 { 38 Adaptee adaptee = new Adaptee(); 39 ITarget target = new Adapter(adaptee); 40 41 target.Request(); // 输出:"Adaptee's specific request." 42 } 43 }
八股:
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端期望的另一个接口,从而使得原本不兼容的类能够一起工作。适配器模式可以解决不同接口之间的兼容性问题,使得不需要修改现有代码就可以让多个类协同工作。
适配器模式中包含三种主要角色:
-
目标接口(Target):目标接口是客户端期望的接口,适配器类将原本不兼容的类转换成这个目标接口。
-
适配器类(Adapter):适配器类实现目标接口,并包含一个对原本不兼容类的引用,通过适配器类的方法调用原本不兼容类的方法,从而实现目标接口。
-
原本不兼容的类(Adaptee):原本不兼容的类是客户端需要使用的类,但它的接口与目标接口不兼容。
适配器模式的核心思想是通过适配器类将原本不兼容的类进行包装,使得它们能够在目标接口下工作。这样,客户端就可以通过目标接口来调用原本不兼容类的方法,而不需要关心实际的实现细节。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)