设计模式之桥接模式(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】-  我在室内跑步.....