首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式:橋接模式具體實作類別 SqlMessage 與 XMLMessage (4/5)

     編輯:關於C語言

具體實作:SqlMessage

實作抽象實作介面 AbstractMessage,提供 SQL 具體操作邏輯:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Bridge
{
    /// 
    /// Sql 方式操作 Message(ConcreteImplementor)
    /// 
    public class SqlMessage : AbstractMessage
    {
        /// 
        /// 獲取 Message
        /// 
        /// MessageModel 清單
        public override List<MessageModel> Get()
        {
            List<MessageModel> l = new List<MessageModel>();
            l.Add(new MessageModel("SQL方式獲取Message", DateTime.Now));
            return l;
        }

        /// 
        /// 插入 Message
        /// 
        /// Message 實體物件
        /// 是否成功
        public override bool Insert(MessageModel mm)
        {
            // 程式碼略
            return true;
        }
    }
}

具體實作:XMLMessage

實作相同介面,提供 XML 具體操作邏輯:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Bridge
{
    /// 
    /// XML 方式操作 Message(ConcreteImplementor)
    /// 
    public class XMLMessage : AbstractMessage
    {
        /// 
        /// 獲取 Message
        /// 
        /// MessageModel 清單
        public override List<MessageModel> Get()
        {
            List<MessageModel> l = new List<MessageModel>();
            l.Add(new MessageModel("XML方式獲取Message", DateTime.Now));
            return l;
        }

        /// 
        /// 插入 Message
        /// 
        /// Message 實體物件
        /// 是否成功
        public override bool Insert(MessageModel mm)
        {
            // 程式碼略
            return true;
        }
    }
}

ConcreteImplementor 角色定位

  • 實作介面契約:繼承 AbstractMessage,必須實作 Get() 與 Insert()。
  • 封裝具體技術:SQL 版本封裝 ADO.NET 邏輯,XML 版本封裝 XmlDocument/XLINQ 邏輯。
  • 可互換性:抽象層 Message / MyMessage 持有 AbstractMessage 參考,運行時可透明切換。
  • 獨立演化:新增 JsonMessage、OracleMessage 等新實作,零影響抽象層代碼。

與策略模式差異

橋接模式強調「抽象與實作的結構性分離」,兩者都有各自的繼承體系;策略模式強調「演算法的封裝與互換」,通常只有單一策略介面與多個具體策略。橋接模式的抽象層本身也有繼承階層(Message → MyMessage)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved