1、概述設計模式
將抽象部分與它的實現部分分離,使它們均可以獨立地變化。ide
2、模式中的角色this
Abstraction:定義抽象類的接口;維護一個指向Implementor類型對象的指針;spa
RefinedAbstraction:擴充由Abstraction定義的接口;設計
Implementor:定義具體行爲,具體特徵的應用接口;指針
ConcreteImplementor:實現Implementor。code
3、UML類圖對象
4、代碼實現blog
4.1 橋接模式的實現代碼接口
/// <summary> /// 實現 /// </summary> public abstract class Implementor { public abstract void OperationImp(); } public class ConcreteImplementorA : Implementor { /// <summary> /// 具體實現 /// </summary> public override void OperationImp() { Console.WriteLine("具體實現A的執行"); } } public class ConcreteImplementorB : Implementor { public override void OperationImp() { Console.WriteLine("具體實現B的執行"); } } /// <summary> /// 抽象 /// </summary> public abstract class Abstraction { protected Implementor implementor; public void SetImplementor(Implementor imp) { this.implementor = imp; } public abstract void Opration(); } /// <summary> /// 被提煉的抽象 /// </summary> public class RefinedAbstraction: Abstraction { public override void Opration() { implementor.OperationImp(); } }
4.2 客戶端實現
#region 橋接模式 Abstraction abstraction = new RefinedAbstraction(); abstraction.SetImplementor(new ConcreteImplementorA()); abstraction.Opration(); abstraction.SetImplementor(new ConcreteImplementorB()); abstraction.Opration(); #endregion
輸出結果:
參考書籍《設計模式-可複用面向對象軟件的基礎》