/** * 橋接模式 * @author TMAC-J * 應用於多維度方案 * 用組合的形式代替繼承 * 符合單一職責原則 * 一個類只有一個引起他變化的原因 * 增加程式靈活性 */ public class BridgePattern { abstract class Road{ Car ca... ...
/** * 橋接模式 * @author TMAC-J * 應用於多維度方案 * 用組合的形式代替繼承 * 符合單一職責原則 * 一個類只有一個引起他變化的原因 * 增加程式靈活性 */ public class BridgePattern { abstract class Road{ Car car; void run(){}; } abstract class Car{ void showMyName(){}; } public class Street extends Road{ public void run(){ car.showMyName(); System.out.println("在街道上上賓士"); } } public class SpeedRoad extends Road{ public void run(){ car.showMyName(); System.out.println("在高速路上賓士"); } } public class Bus extends Car{ public void showMyName(){ System.out.println("公交車"); } } public class SedanCar extends Car{ public void showMyName(){ System.out.println("轎車"); } } public void test(){ Street street = new Street(); street.car = new Bus(); street.run();//輸出結果為公交車在街道上賓士 SpeedRoad speedRoad = new SpeedRoad(); speedRoad.car = new SedanCar(); speedRoad.run();//輸出結果為轎車在高速路上賓士 } }