设计模式之接口型模式(一)----适配器模式

        通过一个简单的例子说一下适配器模式,适配器模式属于接口型模式。适配器模式的意图在于,使用不同接口的类所提供的服务为客户端提供

它所期望的接口!!!


       举个例子,日常生活中我们都要用水,所以我们就装水管到每家每户,到每家每户的水我们怎么才能用(控制水流,使用水等),毫无疑问,当然是水龙头啊,

接着在水管上装了一个水龙头,之后我们就可以舒舒服服用水洗菜,冲厕所等,突然有一天我想洗澡了,发现水龙头的水直流并且成一条水柱,太不舒服,于是我就买了

一个喷头,利用喷头来洗澡!!


目标(Target):这就是所期待得到的接口。也就是水管(Pipe)

源(source)角色:现在需要适配的接口。水龙头(Tap)

适配器(Adaper):适配器类是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是具体类。也就是上述例子中的喷头(Nozzle)

Pipe接口的代码:

package com.panther.dong.designpattern.adapter;

/**
 * Created by panther on 15-8-22.
 */
public interface Pipe {
    public void water(); //使用水

    public void flow();  //水的流量

    public void wide(); //水管宽度;
}

Tap的代码:

package com.panther.dong.designpattern.adapter;

/**
 * Created by panther on 15-8-22.
 */
public class Tap {
    private String name = "华艺"; //水龙头品牌

    public void water()
    {
        System.out.println("水缓缓流出,可以用了");
    }
}
Nozzle代码:

package com.panther.dong.designpattern.adapter;

/**
 * Created by panther on 15-8-22.
 */
public class Nozzle extends Tap implements Pipe {

    @Override
    public void water() {
        super.water();
    }

    @Override
    public void flow() {

    }

    @Override
    public void wide() {

    }
}

测试:

package com.panther.dong.designpattern.adapter;

/**
 * Created by panther on 15-8-22.
 */
public class AdapterTest {
    public static void main(String[] args) {
        new Nozzle().water();
    }
}


运行结果:

水缓缓流出,可以用了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值