設計模式學習筆記-橋接模式
阿新 • • 發佈:2017-05-22
學習 write images 基礎 abs 分離 對象 bsp uml
一、概述
將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
二、模式中的角色
Abstraction:定義抽象類的接口;維護一個指向Implementor類型對象的指針;
RefinedAbstraction:擴充由Abstraction定義的接口;
Implementor:定義具體行為,具體特征的應用接口;
ConcreteImplementor:實現Implementor。
三、UML類圖
四、代碼實現
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
輸出結果:
參考書籍《設計模式-可復用面向對象軟件的基礎》
設計模式學習筆記-橋接模式