zoukankan      html  css  js  c++  java
  • 两种方式实现适配器

    1.通过继承的方式

    2.通过组合的方式

    package adapter;
    
    /**
     * Print是客户需要使用的接口
     */
    public interface Print {
        public void printWeak();
        public void printStrong();
    }
    package adapter;
    
    /**
     * Banner是原始的接口
     */
    public class Banner {
        private String string;
        
        public Banner(String string){
            this.string = string;
        }
        
        public void showWithParen(){
            System.out.println("("+string+")");
        }
        
        public void showWithAster(){
            System.out.println("*"+string+"*");
        }
    }
    package adapter;
    
    /**
     * PrintBanner是适配器,将Banner适配为Print
     * 此种方式是运用继承的方式实现的适配器
     */
    public class PrintBanner extends Banner implements Print {
    
        public PrintBanner(String string) {
            super(string);
        }
    
        @Override
        public void printWeak() {
            showWithParen();
        }
    
        @Override
        public void printStrong() {
            showWithAster();
        }
    
    }
    package adapter;
    /**
     * 该种方式是使用委托(组合)的方式实现适配器
     * 
     */
    public class PrintBanner2 implements Print{
        
        private Banner banner;
        
        public PrintBanner2(Banner banner){
            this.banner = banner;
        }
        
        @Override
        public void printWeak() {
            banner.showWithParen();
        }
    
        @Override
        public void printStrong() {
            banner.showWithAster();
        }
    
    }
    package adapter;
    /**
     * 伟大的客户
     */
    public class Client {
        public static void main(String[] args) {
            Print print = new PrintBanner("hello adapter model of inherit");
            print.printStrong();
            print.printWeak();
            
            
            Print print2 = new PrintBanner2(new Banner("hello adapter model of combination"));
            print2.printStrong();
            print.printWeak();
            
        }
    }
    运行结果:
    *hello adapter model of inherit* (hello adapter model of inherit) *hello adapter model of combination* (hello adapter model of inherit)

      

  • 相关阅读:
    c++指向数组的指针,数组指针
    c#和c++互操作(平台调用相关)
    LA和TA
    RSCP RSRP RSRQ
    HARQ(Hybrid Automatic Repeat Request ) 混合自动重传请求
    传输层的几个部分的ALCAP、SSCOP、MTP3-B、SCCP、SAAL、SCCF、STC、IP、UDP、GTPU
    SSCOP Service Specific Connection Oriented Protocol 业务特定面向连接协议
    SSCF-UNI
    PCRF、PCEF、PCC(转帖)
    LTE中的几个概念——LTE,SAE,EPC,EPS
  • 原文地址:https://www.cnblogs.com/tisakong/p/4708463.html
Copyright © 2011-2022 走看看