zoukankan      html  css  js  c++  java
  • 设计模式--适配器模式Adapter(结构型)

    一、适配器模式

    适配器模式的主要作用是在新接口和老接口之间进行适配。将一个类的接口转换成客户端期望的另外一个接口。其实适配器模式有点无赖之举,在前期设计的时候,我们就不应该考虑适配器模式,而应该通过重构统一接口。

    二、适配器模式分为类适配器模式和对象适配器模式

    类适配器模式:适配器使用多重继承对一个接口与另外一个接口进行匹配。

    对象适配器模式:适配器在新接口中利用已有类的实例来实现接口的匹配。

    三、UML图

    类适配器模式

    对象适配器模式

    四、示例

    类适配器模式

    package com.visionsky.DesignPattern; 
     
    interface Target { 
        void Request(); 
    } 
     
    class Adaptee { 
        void SpecificRequst() { 
            System.out.println("Adaptee's SpecificRequst"); 
        } 
    } 
     
    class Adapter extends Adaptee implements Target  
    { 
     
        @Override 
        public void Request() { 
             System.out.println("Adapter's Request"); 
              super.SpecificRequst(); 
        } 
     
    } 
     
    public class AdapterDemo { 
     
        /** 
         * @param args 
         */ 
        public static void main(String[] args) { 
            // TODO Auto-generated method stub 
            Target t=new Adapter(); 
            t.Request(); 
        } 
     
    } 

    对象适配器模式

    package com.visionsky.DesignPattern; 
     
    interface Target { 
        void Request(); 
    } 
     
    class Adaptee { 
        void SpecificRequst() { 
            System.out.println("Adaptee's SpecificRequst"); 
        } 
    } 
     
    class Adapter  implements Target  
    { 
     
        private Adaptee adaptee; 
        public Adapter() 
        { 
            this.adaptee=new Adaptee(); 
        } 
         
        @Override 
        public void Request() { 
             System.out.println("Adapter's Request"); 
             adaptee.SpecificRequst(); 
        } 
     
    } 
     
    public class AdapterDemo { 
     
        /** 
         * @param args 
         */ 
        public static void main(String[] args) { 
            // TODO Auto-generated method stub 
            Target t=new Adapter(); 
            t.Request(); 
        } 
     
    } 
  • 相关阅读:
    SD_WebImage-03-多线程+下载任务放入非主线程执行
    NSOperationQueue_管理NSOperation-02-多线程
    CALayer小结-基本使用00-UI进阶
    XMPP-UI进阶-01
    XMPP总结-UI进阶-00
    UI控件总结-UI初级
    转场动画-01-day4
    暂停-开始动画-核心动画-08-day4
    核心动画-04-CALayer隐式动画
    Android开发技术周报 Issue#71
  • 原文地址:https://www.cnblogs.com/justkong/p/6229185.html
Copyright © 2011-2022 走看看