桥接模式定义:将抽象部分与实现部分分离,使它们都可以独立的变化。
实现系统可能有多个角度分类,每一种角度都可能变化。此时可以使用桥接模式。
以下代码演示桥接模式简单的实际运用:
定义一个接口Travel:
package com.ldl.cn.BridgeModel;
public interface Travel {
public void travelStyle();
}
定义一个抽象类People:
package com.ldl.cn.BridgeModel;
public abstract class People {
protected Travel travel;
public People(Travel travel) {
super();
this.travel = travel;
}
public abstract void relax();
}
分别定义类TravelByAircraft、TravelByTrain实现Travel接口:
package com.ldl.cn.BridgeModel;
public class TravelByAircraft implements Travel{
@Override
public void travelStyle() {
System.out.println("Travel by aircraft.");
}
}
package com.ldl.cn.BridgeModel;
public class TravelByTrain implements Travel{
@Override
public void travelStyle() {
System.out.println("Travel by train.");
}
}
定义类TravelMan继承People:
package com.ldl.cn.BridgeModel;
public class TravelMan extends People{
public TravelMan(Travel travel) {
super(travel);
}
@Override
public void relax() {
travel.travelStyle();
}
}
编写测试类:
package com.ldl.cn.BridgeModel;
public class TestBridgePattern {
public static void main(String[] args) {
People people_train = new TravelMan(new TravelByTrain());
People people_aircraft = new TravelMan(new TravelByAircraft());
people_train.relax();
people_aircraft.relax();
}
}
运行结果:
Travel by train.
Travel by aircraft.