zoukankan      html  css  js  c++  java
  • 常用设计模式-适配器模式

    1、适配器使用场景:

     1、系统需要使用现有的类,而此类的接口不符合系统的需要。

    2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。

    3、通过接口转换,将一个类插入另一个类系中。(比如老虎和飞禽,现在多了一个飞虎,在不增加实体的需求下,增加一个适配器,在里面包容一个虎对象,实现飞的接口。)

    2、生活场景

    目前只有适配二脚插头的插座,但是买回来的电器是三脚的插头。

    那如果让三脚插头可以插在二脚的插座上呢? 这时候就可以用适配作为桥梁,适配器连接二脚插头和三脚的插座。

    3、代码实现

    /**
     * 两脚插座接口(目标接口)
     */
    public interface TwoPinSocket {
        //两脚
        public void towPinConnect();
    }
    
    /**
     * 两脚插座实现(目标)
     */
    public class TwoPinSocketImpl implements TwoPinSocket {
        @Override
        public void towPinConnect() {
            System.out.println("我是两脚插座");
        }
    }
    
    
    /**
     * 第一种方式:通过继续获的被适配者的方法,从而转成通用方法
     * 适配器目的:两脚插座适配三脚插头。插座是目标,插头是被适配。
     * 适配器需要实现目标接口
     */
    public class adapter extends ThreePinPlug implements TwoPinSocket {
        @Override
        public void towPinConnect() {
            super.threePinPlug();
        }
    }
    
    
    /**
     * 第二种方式:注入被适配对象方式实现适配器
     * 适配器目的:两脚插座适配三脚插头。插座是目标,插头是被适配。
     * 适配器需要实现目标接口
     */
    public class adapter  implements TwoPinSocket {
        
        private ThreePinPlug threePinPlug;
        
        public void ThreePinPlug(ThreePinPlug threePinPlug){
            this.threePinPlug = threePinPlug;
        }
        
        @Override
        public void towPinConnect() {
            threePinPlug.threePinPlug();
        }
    }
    

      

  • 相关阅读:
    服务端配置scan ip
    父表、子表 主外键关系
    Linux下使用NMON监控、分析系统性能
    Spot light工具集
    linux设置中文环境
    【Android Developers Training】 20. 创建一个Fragment
    【Android Developers Training】 19. 序言:通过Fragments构建动态UI
    【Android Developers Training】 18. 重新创建一个Activity
    【Android Developers Training】 17. 停止和重启一个Activity
    【Android Developers Training】 16. 暂停和恢复一个Activity
  • 原文地址:https://www.cnblogs.com/chenweichu/p/10226743.html
Copyright © 2011-2022 走看看