您现在的位置:主页 > 技术中心 > 编程开发 > .net

设计模式读书笔记-适配器模式

来源:网络 责任编辑:admin 发表时间:2013-07-02 01:03 点击:

就是将一个类的接口转换为客户期望的另一格接口,就是实现两个接口不兼容类的无缝对接.
类似生活中的 电源转换器功能;
举个简单例子:
public interface Duck {
       public void quack();
       public void fly();
}
 
public interface Turkey {
       public void gobble();
       public void fly();
}
public class WildTurkey implements Turkey {
       public void gobble() {
              System.out.println("Gobble gobble");
       }
 
       public void fly() {
              System.out.println("I'm flying a short distance");
       }
}
现在用 Turkey 来伪装 Duck
public class DuckAdapter implements Turkey {
       Duck duck;
       Random rand;
 
       public DuckAdapter(Duck duck) {
              this.duck = duck;
              rand = new Random();
       }
  
       public void gobble() {
              duck.quack();
       }
 
       public void fly() {
              if (rand.nextInt(5) == 0) {
                   duck.fly();
              }
       }
}
 
public class MallardDuck implements Duck {
       public void quack() {
              System.out.println("Quack");
       }
 
       public void fly() {
              System.out.println("I'm flying");
       }
}
 
public class DuckTestDrive {
       public static void main(String[] args) {
              MallardDuck duck = new MallardDuck();
 
              WildTurkey turkey = new WildTurkey();
              Duck turkeyAdapter = new TurkeyAdapter(turkey);
 
              System.out.println("The Turkey says...");
              turkey.gobble();
              turkey.fly();
 
       }
本文出自 “清风” 博客

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件
    ?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
    Copyright © 2004-2024 上海卓卓网络科技有限公司