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");
}
}