适配器模式——设计模式

最近温习设计模式,看了这篇文章,根据自己的理解进行了一些修改,加深一下印象。


背景:菜鸟马上又要去德国出差了,上一次由于不知道德国插座与中国插座不同,带去的电子设备好险没充上电,差点沦为摆设,让他在心仪的小美面前出了洋相。这一次,菜鸟吸取教训,特意去超市采购了一件神器,有了神器在手,再也不担心出洋相了。


package adapterPattern;

/**
 * Created by cq on 2015/8/16.
 * 测试适配器模式
 */
public class Shaver {
    private GlSSocketInterface glsocket;
    //插入插座
    public void setSocket(GlSSocketInterface glsocket){
        this.glsocket = glsocket;
    }
    //充电
    public void charge(){
        glsocket.powerWithGlS();
    }
    public static void main(String[] args){
        //菜鸟有一把剃须刀
        Shaver shaver = new Shaver();

        //菜鸟在国内给剃须刀充电
        //这里有国标插座,直接使用
        GlSSocketInterface glSSocket = new GlSSocket();
        //插入国标插座
        shaver.setSocket(glSSocket);
        //充电
        shaver.charge();


        //菜鸟出差到了国外,准备给剃须刀充电
        //这里只有德国插座(旁边小美斜睨着菜鸟)
        GeSSocket geSSocket = new GeSSocket();
        //哈哈,大笑中掏出插座适配器,插入德国插座
        glSSocket = new SocketAdapter(geSSocket);
        //剃须刀插入适配器
        shaver.setSocket(glSSocket);
        //顺利充电
        shaver.charge();
    }
}

//符合德国插座标准的德国插座
class GeSSocket{
    public void powerWithGeS(){
        System.out.println("德国插座充电中...");
    }
}

//符合国际标准的插座
interface GlSSocketInterface{
    void powerWithGlS();
}
//符合国际插座标准的插座
class GlSSocket implements GlSSocketInterface{
    public void powerWithGlS(){
        System.out.println("国标插座充电中...");
    }
}

//插座适配器,提供给国标剃须刀无缝充电体验
class SocketAdapter implements GlSSocketInterface{
    private GeSSocket geSSocket;
    public SocketAdapter(GeSSocket geSSocket){
        this.geSSocket = geSSocket;
    }
    //将德国插座送过来的电以国标插座的方式送出
    public void powerWithGlS(){
        System.out.println("正在使用适配器进行适配...");
        geSSocket.powerWithGeS();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值