码迷,mamicode.com
首页 > 其他好文 > 详细

适配器模式

时间:2020-06-28 00:03:17      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:组件   com   end   匹配   vat   specific   load   obj   inter   

一. 结构图

(1)类适配器结构图(继承新接口,实现目标接口)

耦合度高,且要求了解组件的内部结构,应用较少。

技术图片

 

 (2)对象适配器结构图(组合适配者对象,实现目标接口)

技术图片

 

 二. 实现

(1)类适配器
package adapter;
//目标接口
interface Target
{
    public void request();
}
//适配者接口
class Adaptee
{
    public void specificRequest()
    {       
        System.out.println("适配者中的业务代码被调用!");
    }
}
//类适配器类
class ClassAdapter extends Adaptee implements Target
{
    public void request()
    {
        specificRequest();
    }
}
//客户端代码
public class ClassAdapterTest
{
    public static void main(String[] args)
    {
        System.out.println("类适配器模式测试:");
        Target target = new ClassAdapter();
        target.request();
    }
}
(2)对象适配器
package adapter;
//对象适配器类
class ObjectAdapter implements Target
{
    private Adaptee adaptee;
    public ObjectAdapter(Adaptee adaptee)
    {
        this.adaptee=adaptee;
    }
    public void request()
    {
        adaptee.specificRequest();
    }
}
//客户端代码
public class ObjectAdapterTest
{
    public static void main(String[] args)
    {
        System.out.println("对象适配器模式测试:");
        Adaptee adaptee = new Adaptee();
        Target target = new ObjectAdapter(adaptee);
        target.request();
    }
}

三. 应用场景

(1)老系统存在满足功能需求的类,但接口同新系统的要求不一致。
(2)使用第三方组件,其接口定义和要求不同。

四.与代理模式区别

适配模式,解决适配者与目标接口不匹配的问题。
代理模式,会和目标对象实现相同的接口,屏蔽对目标对象的直接访问。

适配器模式

标签:组件   com   end   匹配   vat   specific   load   obj   inter   

原文地址:https://www.cnblogs.com/shijianchuzhenzhi/p/13200558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!