经常使用设计模式-适配器模式

一、适配器使用场景:java

 一、系统须要使用现有的类,而此类的接口不符合系统的须要。ide

二、想要创建一个能够重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在未来引进的类一块儿工做,这些源类不必定有一致的接口。this

三、经过接口转换,将一个类插入另外一个类系中。(好比老虎和飞禽,如今多了一个飞虎,在不增长实体的需求下,增长一个适配器,在里面包容一个虎对象,实现飞的接口。)对象

 

二、生活场景blog

目前只有适配二脚插头的插座,可是买回来的电器是三脚的插头。接口

那若是让三脚插头能够插在二脚的插座上呢? 这时候就能够用适配做为桥梁,适配器链接二脚插头和三脚的插座。three

 

三、代码实现class

/**
 * 两脚插座接口(目标接口)
 */
public interface TwoPinSocket {
    //两脚
    public void towPinConnect();
}

/**
 * 两脚插座实现(目标)
 */
public class TwoPinSocketImpl implements TwoPinSocket {
    @Override
    public void towPinConnect() {
        System.out.println("我是两脚插座");
    }
}


/**
 * 第一种方式:经过继续获的被适配者的方法,从而转成通用方法
 * 适配器目的:两脚插座适配三脚插头。插座是目标,插头是被适配。
 * 适配器须要实现目标接口
 */
public class adapter extends ThreePinPlug implements TwoPinSocket {
    @Override
    public void towPinConnect() {
        super.threePinPlug();
    }
}


/**
 * 第二种方式:注入被适配对象方式实现适配器
 * 适配器目的:两脚插座适配三脚插头。插座是目标,插头是被适配。
 * 适配器须要实现目标接口
 */
public class adapter  implements TwoPinSocket {
    
    private ThreePinPlug threePinPlug;
    
    public void ThreePinPlug(ThreePinPlug threePinPlug){
        this.threePinPlug = threePinPlug;
    }
    
    @Override
    public void towPinConnect() {
        threePinPlug.threePinPlug();
    }
}
相关文章
相关标签/搜索