1. 程式人生 > >設計模式學習筆記-橋接模式

設計模式學習筆記-橋接模式

學習 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

輸出結果:

技術分享

參考書籍《設計模式-可復用面向對象軟件的基礎》

設計模式學習筆記-橋接模式