設計模式-橋接模式(Bridge)
阿新 • • 發佈:2018-12-05
橋接模式是構造型模式之一。把抽象(Abstraction)與行為實現(Implementor)分離開來,從而可以保持各部分的獨立性以及應對它們的功能擴充套件。
角色和職責:
1.抽象類(Abstraction)-Car:
維護對行為實現(Implementor)的引用
2.具體實現(Concrete Abstraction)-Bus、Jeep:
具體實現
3.行為類(Implementor)-Engine:
行為實現類介面
4.行為類具體實現(Concrete Implementor)-Engine2000、Engine2200:
行為類具體實現
UML圖:
程式碼如下:
/** * 行為:安裝引擎 */ public interface Engine { void installEngine();//安裝引擎 }
/** * 行為:安裝引擎2000 */ public class Engine2000 implements Engine{ @Override public void installEngine() { System.out.println("安裝引擎2000"); } }
/** * 行為:安裝引擎2200 */ publicclass Engine2200 implements Engine{ @Override public void installEngine() { System.out.println("安裝引擎2200"); } }
/** * 汽車 */ public abstract class Car { protected Engine engine;//引擎的引用 public Car(Engine engine){ this.engine = engine; } public abstract voidinstallEngine(); }
/** * bus */ public class Bus extends Car{ public Bus(Engine engine) { super(engine); } @Override public void installEngine() { System.out.print("bus:"); engine.installEngine(); } }
/** * jeep */ public class Jeep extends Car{ public Jeep(Engine engine) { super(engine); } @Override public void installEngine() { System.out.print("jeep:"); engine.installEngine(); } }
public class Main { public static void main(String[] args) { Engine engine2000 = new Engine2000();//引擎2000 Engine engine2200 = new Engine2200();//引擎2200 Car bus2000 = new Bus(engine2000);//bus安裝2000引擎 bus2000.installEngine(); Car bus2200 = new Bus(engine2200);//bus安裝2200引擎 bus2200.installEngine(); Car jeep2000 = new Jeep(engine2000);//jeep安裝2000引擎 jeep2000.installEngine(); Car jeep2200 = new Jeep(engine2200);//jeep安裝2200引擎 jeep2200.installEngine(); } }
結果:
bus:安裝引擎2000
bus:安裝引擎2200
jeep:安裝引擎2000
jeep:安裝引擎2200
原始碼地址:https://github.com/qjm201000/design_pattern_bridge.git