代码改变世界

适配器模式

  Clingingboy  阅读(402)  评论(0编辑  收藏  举报

     适配器的意图是复用现有对象的功能. 这个模式用的还是比较多的.

// Existing way requests are implemented
  class Adaptee { 
    // Provide full precision
    public double SpecificRequest (double a, double b) {
      return a/b;
    }
  }
  
  // Required standard for requests
  interface ITarget {
    // Rough estimate required
    string Request (int i);
  }
  
  // Implementing the required standard via the Adaptee
  class Adapter : Adaptee, ITarget {
    public string Request (int i) {
      return "Rough estimate is " + (int) Math.Round(SpecificRequest (i,3));
    }
  }

重新定义了一个Request方法,然后调用基类方法SpecificRequest (也可以不用继承,从内部实例化对象也可以,具体可灵活运用)

static void  Main () {
    // Showing the Adapteee in stand-alone mode
   Adaptee first = new Adaptee();
   Console.Write("Before the new standard\nPrecise reading: ");
   Console.WriteLine(first.SpecificRequest(5,3));
    
   // What the client really wants
   ITarget second = new Adapter();
   Console.WriteLine("\nMoving to the new standard");
   Console.WriteLine(second.Request(5));
   Console.ReadKey();
 }

其实模式这东西,只要掌握了面向对象,模式就自然运用出来了

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2009-08-26 Spring.NET学习笔记(6)-基础AOP
点击右上角即可分享
微信分享提示