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的类),都可以搭配着适配器使用。

  • 相关阅读:
    Web Api跨域访问配置及调用示例
    EasyUI datagrid 日期时间格式化
    bootstrap-table组合表头
    Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web mod
    Java 开发环境配置
    一台电脑上配置多个tomcat
    使用plsql Developer 连接远程服务器
    阿里云初识
    算法入门———冒泡排序
    算法入门———递归
  • 原文地址:https://www.cnblogs.com/hachun/p/3578143.html
Copyright © 2011-2022 走看看