• 适配器模式


    模式定义

    适配器模式:将一个借口转化成客户希望的另一个接口,适配器模式使接口不兼容的类可以一起工作。

    模式结构图

     模式分析

    适配器有如下几个角色

    1.Target(目标抽象类)

    定义客户要用的特定领域的接口,可以是个抽象类或借口,也可以是具体类。

    2.Adapter(适配器类)

    适配器类可以调用另一个接口,作为一个转化器,对Adaptee和Target进行适配,适配器Adapter是适配器模式的核心,在类适配器中,他通过实现Target接口并继承类来使两者修昂胡联系。

    3.Adaptee(适配者类)

    适配者即被适配的角色,它定义了一个已经存在的接口。这个接口需要适配,适配类一般是一个实体类,它包含了客户希望使用的业务方法。

    4.Clientlei(客户类)

    针对目标抽象类进行编程。

    优点:

    (1)将目标类和适配类解耦

    (2)增加了类的透明性和复用性

    (3)灵活性和扩展性很好

    缺点:

    (1)java,C#不支持类的多重继承。

    机器人模仿狗案例

    机器人接口类

    package com.zck.adapter;
    
    //仿生机器人接口
    public interface Robot {
    	public void cry();
    	public void move();
    }
    

      

    狗实体类

    package com.zck.adapter;
    
    public class Dog {
    	public void wang(){
    		System.out.println("狗汪汪叫");
    	}
    	public void run(){
    		System.out.println("狗快快跑");
    	}
    }
    

      

    狗适配器类

    package com.zck.adapter;
    
    public class DogAdapter extends Dog implements Robot {
    
    	public void cry() {
    		System.out.println("机器人模仿");
    		super.wang();
    	}
    
    	public void move() {
    		System.out.println("机器人模仿");
    		super.run();
    
    	}
    
    }
    

      

    客户端类

    package com.zck.adapter;
    
    public class Client {
    	public static void main(String[] args) {
    		DogAdapter dogAdapter = new DogAdapter();
    		Robot robot = dogAdapter;
    		robot.cry();
    		robot.move();
    	}
    
    }
    

      

    测试结果

  • 相关阅读:
    PHP、asp、aspx、JSP一句话
    Linux 修改时区(PDT修改为CST)
    m0n0防火墙安装配置方法
    kali 使用John破解zip压缩包的密码
    Linux 挂载windows共享文件夹
    博客园添加粒子特效
    wpscan 更新超时报错
    kali 攻击wordpress + trunkey linux wordpress 安装方法
    Kali和Metasploitable2的网络配置
    设计模式之观察者
  • 原文地址:https://www.cnblogs.com/2016-zck/p/13926308.html
Copyright © 2020-2023  润新知