桥接模式适用于某个类存在两个或多个不同维度变化的情况,相比多重继承来说,桥接模式更符合单一职责原则,更易于拓展,使得两个或多个维度的拓展变得容易,实现了抽象实现和具体实现的解耦。示例如下:
public class Bridge {
public static void main(String[] args){
Bridge bridge=new Bridge();
SQL mySql = bridge.new MySql();
Read ppt = bridge.new PPT();
ppt.setSql(mySql);
ppt.readData();
}
interface SQL{
String getName();
}
class MySql implements SQL{
@Override
public String getName() {
return "MySql数据库";
}
}
class Oracle implements SQL{
@Override
public String getName() {
return "Oracle数据库";
}
}
class SqlServer implements SQL{
@Override
public String getName() {
return "SqlServer数据库";
}
}
abstract class Read{
private SQL sql;
public SQL getSql() {
return sql;
}
public void setSql(SQL sql) {
this.sql = sql;
}
public abstract void readData();
}
class PPT extends Read{
@Override
public void readData() {
System.out.println(getSql().getName()+"读取PPT");
}
}
class EXCEL extends Read{
@Override
public void readData() {
System.out.println(getSql().getName()+"读取EXCEL");
}
}
class WORD extends Read{
@Override
public void readData() {
System.out.println(getSql().getName()+"读取WORD");
}
}
}
网友评论