设计模式之桥接模式(bridge)
桥接(Bridge)模式涉及充当桥接的接口。桥接使得具体类与接口实现者类无关。 这两种类型的类可以改变但不会影响对方。
Java桥接模式示例
// 运动
public interface SportApi {
public void doSport();
}
// 抽象跑步
public abstract class AbstractRun {
protected SportApi mSportApi;
public AbstractRun(SportApi api)
{
this.mSportApi = api;
}
public abstract void doSport();
}
// 跑步实现
public class MyRun extends AbstractRun {
public MyRun(SportApi api)
{
super(api);
}
@Override
public void doSport() {
mSportApi.doSport();
}
}
// 室内跑步
public class IndoorRun implements SportApi{
@Override
public void doSport() {
LogHelper.log("我在室外跑步.....");
}
}
// 室外跑步
public class OutdoorRun implements SportApi{
@Override
public void doSport() {
LogHelper.log("我在室内跑步.....");
}
}
// 使用
public class App {
public static void main(String[] args)
{
AbstractRun indoorRun = new MyRun(new IndoorRun());
AbstractRun outdoorRun = new MyRun(new OutdoorRun());
indoorRun.doSport();
outdoorRun.doSport();
}
}
运动结果为
【www.pangugle.com】- 我在室外跑步.....
【www.pangugle.com】- 我在室内跑步.....