1. 适配器模式

1.1 定义

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

1.2 样例

以适配不同的数据库为例,定义被适配对象MySQL和Oracle:

@Slf4j
public class MySQL {

    public void exec(String sql) {
        log.info("使用mysql执行sql:{}", sql);
    }
}
@Slf4j
public class MySQL {

    public void exec(String sql) {
        log.info("使用mysql执行sql:{}", sql);
    }
}

定义适配器接口:

public interface Adapter {
    void execSql(String sql);
}

定义MySQL和Oracle的适配器:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MysqlAdapter implements Adapter {

    private MySQL mySQL;

    @Override
    public void execSql(String sql) {
        mySQL.exec(sql);
    }
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OracleAdapter implements Adapter {

    private Oracle oracle;

    @Override
    public void execSql(String sql) {
        oracle.run(sql);
    }
}

测试:

public class Test {
    public static void main(String[] args) {
        Adapter adapter = new MysqlAdapter(new MySQL());
        adapter.execSql("select * from t_test");
        adapter = new OracleAdapter(new Oracle());
        adapter.execSql("select * from t_test");
    }
}