zoukankan      html  css  js  c++  java
  • 适配器模式

      适配器模式:将一个类的接口转换成客户期望的另一个接口。

      客户使用适配器的过程:

      a. 客户通过目标接口(Duck)调用适配器(TurkeyAdapter )的方法,对适配器发出请求。

      b. 适配器(TurkeyAdapter )使用被适配者接口(Turkey)把请求(quack())转换成被支配者的一个或多个方法(gubble())。

      c. 客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用。

    代码示例:

    public interface Duck
    {
        public void quack();
        public void fly();
    }
    
    public interface Turkey
    {
        public void gubble();
        public void fly();
    }

      现在,假设你缺鸭子对象,想用火鸡对象来冒充。。。适配器的干活。。。

    // 你需要实现想转换成的接口,也就是客户所期望看到的接口
    public class TurkeyAdapter implements Duck
    {
        // * 冒充鸭子的火鸡
        Turkey turkey;                                      
    
        public TurkeyAdapter(Turkey turkey)
        {
            this.turkey = turkey;
        }
    
        public void quack()
        {
            turkey.gubble();
        }
    
        public void fly()
        {
            turkey.fly();
        }
    }

      该模式可以通过创建适配器进行接口转换。让不兼容的接口编程兼容,这可以让用户从实现的接口解耦。

      这个适配器充满着良好的OO设计原则:使用对象组合(上注 *),以修改的接口包装被适配者:这种做法有个额外的优点:被适配者的任何子类(实现接口Turkey的类),都可以搭配着适配器使用。

  • 相关阅读:
    (4) 编译 Android-5.0 源码
    (3) 下载 Android-5.0 源码
    (2) 搭建 Android 系统开发环境
    npm 安装 --save-dev 与 --save的使用与区别
    一点目标
    AcWing 875. 快速幂
    Codeforces Round #604 (Div. 2)
    2019年安徽大学ACM/ICPC实验室新生赛(公开赛)D 不定方程
    C语言黑与白问题
    AcWing 92. 递归实现指数型枚举
  • 原文地址:https://www.cnblogs.com/hachun/p/3578143.html
Copyright © 2011-2022 走看看