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

    场景

    美国交流电插头(2头)无法插到欧洲壁式插座(3孔)

    解决方法是在中间环节用适配器转化下搞定。

    意图

    将一个借口转化成另一个接口

    举例

    代码

    #

    package designpattern.adapter;
    
    public interface AmericanPlug {
        public void desc();
        public void func();
    }

    #

    package designpattern.adapter;
    
    public interface EuropePlug {
        public void desc();
        public void func();
    }

    ##

    package designpattern.adapter;
    
    public class AmericanPlugImpl implements AmericanPlug{
        public void desc() {
            System.out.println("American");
        }
    
        public void func()  {
            System.out.println("American two plug");
        }
    }

    ##

    package designpattern.adapter;
    
    public class EuropePlugImpl implements EuropePlug{
        public void desc() {
            System.out.println("EuropePlug");
        }
    
        public void func() {
            System.out.println("EuropePlug three plug");
        }
    }

    ###

    package designpattern.adapter;
    
    public class AmericanAdapter implements EuropePlug{
        AmericanPlug americanPlug;
    
        public AmericanAdapter(AmericanPlug americanPlug) {
            this.americanPlug = americanPlug;
        }
    
        public void desc() {
            americanPlug.desc();
        }
    
        public void func() {
            System.out.println("Before adapter");
            americanPlug.func();
            System.out.println("After adapter");
        }
    }

    测试

    package designpattern.adapter;
    
    public class Test {
        public static void main(String[] args) {
            System.out.println("AmericanPlug---------");
            AmericanPlug americanPlug = new AmericanPlugImpl();
            americanPlug.desc();
            americanPlug.func();
    
    
            System.out.println("
    EuropePlug---------");
            EuropePlug europePlug = new EuropePlugImpl();
            europePlug.desc();
            europePlug.func();
    
            System.out.println("
    AmericanAdapter---------");
            AmericanAdapter americanAdapter = new AmericanAdapter(americanPlug);
            americanAdapter.desc();
            americanAdapter.func();
        }
    }

    输出

    AmericanPlug---------
    American
    American two plug
    
    EuropePlug---------
    EuropePlug
    EuropePlug three plug
    
    AmericanAdapter---------
    American
    Before adapter
    American two plug
    After adapter
    
    Process finished with exit code 0
    

      

  • 相关阅读:
    T3984 迷宫问题 TJ
    P1091 合唱队形 TJ
    P4549 【模板】裴蜀定理
    牛客NOIP集训一S 牛牛的方程式 TJ
    P3387 【模板】缩点 TJ
    [数字图像处理](三)对数变换
    [数字图像处理](四)直方图均衡化[HE]算法
    [ACM]KMP算法的两种写法,从0开始,从1开始
    [计算几何]补题
    [Servlet]IJ idea搭建Servlet初步
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/11186502.html
Copyright © 2011-2022 走看看